<?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>203841</bug_id>
          
          <creation_ts>2019-11-04 19:50:20 -0800</creation_ts>
          <short_desc>Layout test http/tests/inspector/network/resource-response-source-memory-cache-revalidate-expired-only.html is a flakey failure</short_desc>
          <delta_ts>2019-11-05 11:53:49 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1587288</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-11-04 19:50:20 -0800</bug_when>
    <thetext>Test:

http/tests/inspector/network/resource-response-source-memory-cache-revalidate-expired-only.html

Test crashing as far back as 243487, and starts failing at 243532 onwards with consistent reproducibility.

Steps to Reproduce:

run-wekit-tests iter 100 -f --exit-after-n-failures 1 http/tests/inspector/network/resource-response-source-memory-cache-revalidate-expired-only.html

Diff:

--- /Volumes/Data/slave/highsierra-debug-tests-wk2/build/layout-test-results/http/tests/inspector/network/resource-response-source-memory-cache-revalidate-expired-only-expected.txt
+++ /Volumes/Data/slave/highsierra-debug-tests-wk2/build/layout-test-results/http/tests/inspector/network/resource-response-source-memory-cache-revalidate-expired-only-actual.txt
@@ -4,6 +4,10 @@
 == Running test suite: Resource.ResponseSource.MemoryCache
 -- Running test case: Resource.ResponseSource.MemoryCache
 PASS: Resource should exist.
-PASS: statusCode should be 304
-PASS: responseSource should be Symbol(memory-cache)
+FAIL: statusCode should be 304
+    Expected: 304
+    Actual: NaN
+FAIL: responseSource should be Symbol(memory-cache)
+    Expected: Symbol(memory-cache)
+    Actual: Symbol(unknown)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587289</commentid>
    <comment_count>1</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-11-04 19:50:35 -0800</bug_when>
    <thetext>&lt;rdar://problem/51752151&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587291</commentid>
    <comment_count>2</comment_count>
      <attachid>382802</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-11-04 19:56:57 -0800</bug_when>
    <thetext>Created attachment 382802
[Patch] Test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587433</commentid>
    <comment_count>3</comment_count>
      <attachid>382830</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-11-05 09:52:04 -0800</bug_when>
    <thetext>Created attachment 382830
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587474</commentid>
    <comment_count>4</comment_count>
      <attachid>382830</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2019-11-05 11:18:21 -0800</bug_when>
    <thetext>Comment on attachment 382830
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587495</commentid>
    <comment_count>5</comment_count>
      <attachid>382830</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-05 11:53:48 -0800</bug_when>
    <thetext>Comment on attachment 382830
Patch

Clearing flags on attachment: 382830

Committed r252067: &lt;https://trac.webkit.org/changeset/252067&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1587496</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-05 11:53:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382802</attachid>
            <date>2019-11-04 19:56:57 -0800</date>
            <delta_ts>2019-11-05 09:52:01 -0800</delta_ts>
            <desc>[Patch] Test</desc>
            <filename>203841.diff</filename>
            <type>text/plain</type>
            <size>341374</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVz
b3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25s
eS0xLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGly
ZWQtb25seS0xLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uMjMwMmJmOWVkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2Fj
aGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBA
CitUZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLgorCisKKz09
IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUK
Ky0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNo
ZQorUEFTUzogUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LgorUEFTUzogc3RhdHVzQ29kZSBzaG91bGQg
YmUgMzA0CitQQVNTOiByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgU3ltYm9sKG1lbW9yeS1jYWNo
ZSkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJl
ZC1vbmx5LTEuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
cmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQt
b25seS0xLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNlZTRl
MmU3MTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRh
dGUtZXhwaXJlZC1vbmx5LTEuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL2NhY2hlZC1zY3JpcHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorVGVzdFBhZ2UuZGlz
cGF0Y2hFdmVudFRvRnJvbnRlbmQoIkxvYWRDb21wbGV0ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkK
K3sKKyAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0
b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNh
Y2hlIik7CisKKyAgICBmdW5jdGlvbiBhZGRSZWxvYWRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRp
b24sIGV4cHJlc3Npb24sIHBhdHRlcm4sIGlnbm9yZUNhY2hlLCBzdGF0dXNDb2RlLCByZXNwb25z
ZVNvdXJjZX0pIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFt
ZSwgZGVzY3JpcHRpb24sCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJldmFs
aWRhdGVBbGxSZXNvdXJjZXM6IHRydWV9KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmF3YWl0RXZlbnQoIkxvYWRDb21wbGV0ZSIpLnRoZW4oKGV2ZW50KSA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGxldCByZXNvdXJjZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGZvciAo
bGV0IGl0ZW0gb2YgV0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1lLnJlc291cmNlQ29sbGVjdGlv
bikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChpdGVtLnVybCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSA9IGl0ZW07CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQgdG8g
ZmluZCBzcGVjaWZpYyByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlamVj
dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXNvdXJj
ZSBpbnN0YW5jZW9mIFdJLlJlc291cmNlLCAiUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LiIpOworICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1
c0NvZGUsIHN0YXR1c0NvZGUsIGBzdGF0dXNDb2RlIHNob3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7
CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uu
cmVzcG9uc2VTb3VyY2UsIHJlc3BvbnNlU291cmNlLCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJl
ICR7U3RyaW5nKHJlc3BvbnNlU291cmNlKX1gKTsKKyAgICAgICAgICAgICAgICB9KS50aGVuKHJl
c29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAg
IGFkZFJlbG9hZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlJlc291cmNlLlJlc3BvbnNlU291
cmNlLk1lbW9yeUNhY2hlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJMb2FkIGEgcmVzb3VyY2Ug
ZnJvbSB0aGUgbWVtb3J5IGNhY2hlIGJ5IHJlbG9hZGluZyB0aGlzIHBhZ2UuIiwKKyAgICAgICAg
cGF0dGVybjogL2NhY2hlZC1zY3JpcHRcLmpzJC8sCisgICAgICAgIGlnbm9yZUNhY2hlOiBmYWxz
ZSwKKyAgICAgICAgcmVzcG9uc2VTb3VyY2U6IFdJLlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1l
bW9yeUNhY2hlLAorICAgICAgICBzdGF0dXNDb2RlOiAzMDQsCisgICAgfSk7CisKKyAgICBzdWl0
ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNl
Lk1lbW9yeUNhY2hlYC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJj
ZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMTAtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25z
ZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTEwLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBp
cmVkLW9ubHktMTAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdCBmb3IgYFJlc291
cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3Vp
dGU6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCistLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKK1BBU1M6IFJlc291cmNl
IHNob3VsZCBleGlzdC4KK1BBU1M6IHN0YXR1c0NvZGUgc2hvdWxkIGJlIDMwNAorUEFTUzogcmVz
cG9uc2VTb3VyY2Ugc2hvdWxkIGJlIFN5bWJvbChtZW1vcnktY2FjaGUpCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9u
c2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0xMC5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25z
ZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTEwLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNv
dXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5
LTEwLmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jYWNoZWQt
c2NyaXB0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1Rlc3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zy
b250ZW5kKCJMb2FkQ29tcGxldGUiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVj
dG9yVGVzdC5kZWJ1ZygpOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVB
c3luY1N1aXRlKCJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIpOworCisgICAg
ZnVuY3Rpb24gYWRkUmVsb2FkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9u
LCBwYXR0ZXJuLCBpZ25vcmVDYWNoZSwgc3RhdHVzQ29kZSwgcmVzcG9uc2VTb3VyY2V9KSB7Cisg
ICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9u
LAorICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoe2lnbm9yZUNhY2hlLCByZXZhbGlkYXRlQWxsUmVzb3Vy
Y2VzOiB0cnVlfSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJM
b2FkQ29tcGxldGUiKS50aGVuKChldmVudCkgPT4geworICAgICAgICAgICAgICAgICAgICBsZXQg
cmVzb3VyY2UgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIFdJ
Lm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5yZXNvdXJjZUNvbGxlY3Rpb24pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJuLnRlc3QoaXRlbS51cmwpKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSBpdGVtOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2UpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgiRmFpbGVkIHRvIGZpbmQgc3BlY2lmaWMg
cmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocmVzb3VyY2UgaW5zdGFuY2VvZiBX
SS5SZXNvdXJjZSwgIlJlc291cmNlIHNob3VsZCBleGlzdC4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5zdGF0dXNDb2RlLCBzdGF0dXND
b2RlLCBgc3RhdHVzQ29kZSBzaG91bGQgYmUgJHtzdGF0dXNDb2RlfWApOworICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnJlc3BvbnNlU291cmNl
LCByZXNwb25zZVNvdXJjZSwgYHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSAke1N0cmluZyhyZXNw
b25zZVNvdXJjZSl9YCk7CisgICAgICAgICAgICAgICAgfSkudGhlbihyZXNvbHZlLCByZWplY3Qp
OworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBhZGRSZWxvYWRUZXN0
Q2FzZSh7CisgICAgICAgIG5hbWU6ICJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNo
ZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiTG9hZCBhIHJlc291cmNlIGZyb20gdGhlIG1lbW9y
eSBjYWNoZSBieSByZWxvYWRpbmcgdGhpcyBwYWdlLiIsCisgICAgICAgIHBhdHRlcm46IC9jYWNo
ZWQtc2NyaXB0XC5qcyQvLAorICAgICAgICBpZ25vcmVDYWNoZTogZmFsc2UsCisgICAgICAgIHJl
c3BvbnNlU291cmNlOiBXSS5SZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSwKKyAg
ICAgICAgc3RhdHVzQ29kZTogMzA0LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2Vz
QW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KKzxwPlRlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAu
PC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hl
LXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTEwMC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1v
cnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMTAwLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNl
LXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMTAw
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25z
ZVNvdXJjZS5NZW1vcnlDYWNoZWAuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBSZXNvdXJj
ZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFJlc291
cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCitQQVNTOiBSZXNvdXJjZSBzaG91bGQgZXhp
c3QuCitQQVNTOiBzdGF0dXNDb2RlIHNob3VsZCBiZSAzMDQKK1BBU1M6IHJlc3BvbnNlU291cmNl
IHNob3VsZCBiZSBTeW1ib2wobWVtb3J5LWNhY2hlKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1t
ZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMTAwLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1t
ZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMTAwLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNw
b25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTEwMC5odG1s
CkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FjaGVkLXNjcmlwdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CitUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgi
TG9hZENvbXBsZXRlIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3Qu
ZGVidWcoKTsKKworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0
ZSgiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiKTsKKworICAgIGZ1bmN0aW9u
IGFkZFJlbG9hZFRlc3RDYXNlKHtuYW1lLCBkZXNjcmlwdGlvbiwgZXhwcmVzc2lvbiwgcGF0dGVy
biwgaWdub3JlQ2FjaGUsIHN0YXR1c0NvZGUsIHJlc3BvbnNlU291cmNlfSkgeworICAgICAgICBz
dWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKKyAgICAg
ICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5yZWxvYWRQYWdlKHtpZ25vcmVDYWNoZSwgcmV2YWxpZGF0ZUFsbFJlc291cmNlczogdHJ1
ZX0pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgiTG9hZENvbXBs
ZXRlIikudGhlbigoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHJlc291cmNl
ID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBXSS5uZXR3b3Jr
TWFuYWdlci5tYWluRnJhbWUucmVzb3VyY2VDb2xsZWN0aW9uKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAocGF0dGVybi50ZXN0KGl0ZW0udXJsKSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlc291cmNlID0gaXRlbTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc291cmNlKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmZhaWwoIkZhaWxlZCB0byBmaW5kIHNwZWNpZmljIHJlc291cmNl
LiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHJlc291cmNlIGluc3RhbmNlb2YgV0kuUmVzb3Vy
Y2UsICJSZXNvdXJjZSBzaG91bGQgZXhpc3QuIik7CisgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uuc3RhdHVzQ29kZSwgc3RhdHVzQ29kZSwgYHN0
YXR1c0NvZGUgc2hvdWxkIGJlICR7c3RhdHVzQ29kZX1gKTsKKyAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5yZXNwb25zZVNvdXJjZSwgcmVzcG9u
c2VTb3VyY2UsIGByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgJHtTdHJpbmcocmVzcG9uc2VTb3Vy
Y2UpfWApOworICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgYWRkUmVsb2FkVGVzdENhc2Uoewor
ICAgICAgICBuYW1lOiAiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiLAorICAg
ICAgICBkZXNjcmlwdGlvbjogIkxvYWQgYSByZXNvdXJjZSBmcm9tIHRoZSBtZW1vcnkgY2FjaGUg
YnkgcmVsb2FkaW5nIHRoaXMgcGFnZS4iLAorICAgICAgICBwYXR0ZXJuOiAvY2FjaGVkLXNjcmlw
dFwuanMkLywKKyAgICAgICAgaWdub3JlQ2FjaGU6IGZhbHNlLAorICAgICAgICByZXNwb25zZVNv
dXJjZTogV0kuUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUsCisgICAgICAgIHN0
YXR1c0NvZGU6IDMwNCwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlz
aCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8
cD5UZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLjwvcD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlk
YXRlLWV4cGlyZWQtb25seS0xMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUt
cmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMTEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzAyYmY5ZWQwZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Ut
c291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0xMS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw5IEBACitUZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVt
b3J5Q2FjaGVgLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUmVzb3VyY2UuUmVzcG9uc2VT
b3VyY2UuTWVtb3J5Q2FjaGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBSZXNvdXJjZS5SZXNwb25z
ZVNvdXJjZS5NZW1vcnlDYWNoZQorUEFTUzogUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LgorUEFTUzog
c3RhdHVzQ29kZSBzaG91bGQgYmUgMzA0CitQQVNTOiByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUg
U3ltYm9sKG1lbW9yeS1jYWNoZSkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hl
LXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTExLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUt
cmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMTEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uM2VlNGUyZTcxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1t
ZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMTEuaHRtbApAQCAtMCwwICsxLDU4
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NhY2hlZC1zY3JpcHQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQoIkxvYWRDb21wbGV0ZSIp
OworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAg
ICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJlc291cmNlLlJl
c3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIik7CisKKyAgICBmdW5jdGlvbiBhZGRSZWxvYWRUZXN0
Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb24sIHBhdHRlcm4sIGlnbm9yZUNhY2hl
LCBzdGF0dXNDb2RlLCByZXNwb25zZVNvdXJjZX0pIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENh
c2UoeworICAgICAgICAgICAgbmFtZSwgZGVzY3JpcHRpb24sCisgICAgICAgICAgICB0ZXN0KHJl
c29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFn
ZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRhdGVBbGxSZXNvdXJjZXM6IHRydWV9KTsKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoIkxvYWRDb21wbGV0ZSIpLnRoZW4oKGV2
ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9IG51bGw7CisgICAg
ICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgV0kubmV0d29ya01hbmFnZXIubWFpbkZy
YW1lLnJlc291cmNlQ29sbGVjdGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBh
dHRlcm4udGVzdChpdGVtLnVybCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNv
dXJjZSA9IGl0ZW07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCFyZXNvdXJjZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5mYWlsKCJGYWlsZWQgdG8gZmluZCBzcGVjaWZpYyByZXNvdXJjZS4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJlamVjdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdChyZXNvdXJjZSBpbnN0YW5jZW9mIFdJLlJlc291cmNlLCAiUmVzb3VyY2Ug
c2hvdWxkIGV4aXN0LiIpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dEVxdWFsKHJlc291cmNlLnN0YXR1c0NvZGUsIHN0YXR1c0NvZGUsIGBzdGF0dXNDb2RlIHNob3Vs
ZCBiZSAke3N0YXR1c0NvZGV9YCk7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0RXF1YWwocmVzb3VyY2UucmVzcG9uc2VTb3VyY2UsIHJlc3BvbnNlU291cmNlLCBgcmVz
cG9uc2VTb3VyY2Ugc2hvdWxkIGJlICR7U3RyaW5nKHJlc3BvbnNlU291cmNlKX1gKTsKKyAgICAg
ICAgICAgICAgICB9KS50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIGFkZFJlbG9hZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTog
IlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIiwKKyAgICAgICAgZGVzY3JpcHRp
b246ICJMb2FkIGEgcmVzb3VyY2UgZnJvbSB0aGUgbWVtb3J5IGNhY2hlIGJ5IHJlbG9hZGluZyB0
aGlzIHBhZ2UuIiwKKyAgICAgICAgcGF0dGVybjogL2NhY2hlZC1zY3JpcHRcLmpzJC8sCisgICAg
ICAgIGlnbm9yZUNhY2hlOiBmYWxzZSwKKyAgICAgICAgcmVzcG9uc2VTb3VyY2U6IFdJLlJlc291
cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlLAorICAgICAgICBzdGF0dXNDb2RlOiAzMDQs
CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdCBmb3IgYFJl
c291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jl
c291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9u
bHktMTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhw
aXJlZC1vbmx5LTEyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uMjMwMmJmOWVkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnkt
Y2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
OSBAQAorVGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC4KKwor
Cis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNh
Y2hlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5
Q2FjaGUKK1BBU1M6IFJlc291cmNlIHNob3VsZCBleGlzdC4KK1BBU1M6IHN0YXR1c0NvZGUgc2hv
dWxkIGJlIDMwNAorUEFTUzogcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlIFN5bWJvbChtZW1vcnkt
Y2FjaGUpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4
cGlyZWQtb25seS0xMi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhw
aXJlZC1vbmx5LTEyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LjNlZTRlMmU3MTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJl
dmFsaWRhdGUtZXhwaXJlZC1vbmx5LTEyLmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9jYWNoZWQtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1Rlc3RQ
YWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5kKCJMb2FkQ29tcGxldGUiKTsKKworZnVuY3Rpb24g
dGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5kZWJ1ZygpOworCisgICAgbGV0IHN1aXRlID0g
SW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5N
ZW1vcnlDYWNoZSIpOworCisgICAgZnVuY3Rpb24gYWRkUmVsb2FkVGVzdENhc2Uoe25hbWUsIGRl
c2NyaXB0aW9uLCBleHByZXNzaW9uLCBwYXR0ZXJuLCBpZ25vcmVDYWNoZSwgc3RhdHVzQ29kZSwg
cmVzcG9uc2VTb3VyY2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAg
ICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3Qp
IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoe2lnbm9yZUNhY2hl
LCByZXZhbGlkYXRlQWxsUmVzb3VyY2VzOiB0cnVlfSk7CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5hd2FpdEV2ZW50KCJMb2FkQ29tcGxldGUiKS50aGVuKChldmVudCkgPT4geworICAg
ICAgICAgICAgICAgICAgICBsZXQgcmVzb3VyY2UgPSBudWxsOworICAgICAgICAgICAgICAgICAg
ICBmb3IgKGxldCBpdGVtIG9mIFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5yZXNvdXJjZUNv
bGxlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJuLnRlc3QoaXRl
bS51cmwpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSBpdGVtOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghcmVz
b3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgiRmFp
bGVkIHRvIGZpbmQgc3BlY2lmaWMgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgICAg
ICByZWplY3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQo
cmVzb3VyY2UgaW5zdGFuY2VvZiBXSS5SZXNvdXJjZSwgIlJlc291cmNlIHNob3VsZCBleGlzdC4i
KTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJj
ZS5zdGF0dXNDb2RlLCBzdGF0dXNDb2RlLCBgc3RhdHVzQ29kZSBzaG91bGQgYmUgJHtzdGF0dXND
b2RlfWApOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJl
c291cmNlLnJlc3BvbnNlU291cmNlLCByZXNwb25zZVNvdXJjZSwgYHJlc3BvbnNlU291cmNlIHNo
b3VsZCBiZSAke1N0cmluZyhyZXNwb25zZVNvdXJjZSl9YCk7CisgICAgICAgICAgICAgICAgfSku
dGhlbihyZXNvbHZlLCByZWplY3QpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9
CisKKyAgICBhZGRSZWxvYWRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJSZXNvdXJjZS5SZXNw
b25zZVNvdXJjZS5NZW1vcnlDYWNoZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiTG9hZCBhIHJl
c291cmNlIGZyb20gdGhlIG1lbW9yeSBjYWNoZSBieSByZWxvYWRpbmcgdGhpcyBwYWdlLiIsCisg
ICAgICAgIHBhdHRlcm46IC9jYWNoZWQtc2NyaXB0XC5qcyQvLAorICAgICAgICBpZ25vcmVDYWNo
ZTogZmFsc2UsCisgICAgICAgIHJlc3BvbnNlU291cmNlOiBXSS5SZXNvdXJjZS5SZXNwb25zZVNv
dXJjZS5NZW1vcnlDYWNoZSwKKyAgICAgICAgc3RhdHVzQ29kZTogMzA0LAorICAgIH0pOworCisg
ICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25z
ZVNvdXJjZS5NZW1vcnlDYWNoZWAuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25z
ZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTEzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2Ut
cmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0xMy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIzMDJi
ZjllZDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRh
dGUtZXhwaXJlZC1vbmx5LTEzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3QgZm9y
IGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuCisKKworPT0gUnVubmluZyB0
ZXN0IHN1aXRlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCitQQVNTOiBS
ZXNvdXJjZSBzaG91bGQgZXhpc3QuCitQQVNTOiBzdGF0dXNDb2RlIHNob3VsZCBiZSAzMDQKK1BB
U1M6IHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSBTeW1ib2wobWVtb3J5LWNhY2hlKQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNl
LXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMTMu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2Ut
cmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0xMy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZWU0ZTJlNzEzYgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGly
ZWQtb25seS0xMy5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
Y2FjaGVkLXNjcmlwdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2lu
c3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitUZXN0UGFnZS5kaXNwYXRjaEV2
ZW50VG9Gcm9udGVuZCgiTG9hZENvbXBsZXRlIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAg
IEluc3BlY3RvclRlc3QuZGVidWcoKTsKKworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3Qu
Y3JlYXRlQXN5bmNTdWl0ZSgiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiKTsK
KworICAgIGZ1bmN0aW9uIGFkZFJlbG9hZFRlc3RDYXNlKHtuYW1lLCBkZXNjcmlwdGlvbiwgZXhw
cmVzc2lvbiwgcGF0dGVybiwgaWdub3JlQ2FjaGUsIHN0YXR1c0NvZGUsIHJlc3BvbnNlU291cmNl
fSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLCBkZXNj
cmlwdGlvbiwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHtpZ25vcmVDYWNoZSwgcmV2YWxpZGF0ZUFs
bFJlc291cmNlczogdHJ1ZX0pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRF
dmVudCgiTG9hZENvbXBsZXRlIikudGhlbigoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAg
ICAgbGV0IHJlc291cmNlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRl
bSBvZiBXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUucmVzb3VyY2VDb2xsZWN0aW9uKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAocGF0dGVybi50ZXN0KGl0ZW0udXJsKSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlID0gaXRlbTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc291cmNlKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZhaWwoIkZhaWxlZCB0byBmaW5kIHNw
ZWNpZmljIHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHJlc291cmNlIGluc3Rh
bmNlb2YgV0kuUmVzb3VyY2UsICJSZXNvdXJjZSBzaG91bGQgZXhpc3QuIik7CisgICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uuc3RhdHVzQ29kZSwg
c3RhdHVzQ29kZSwgYHN0YXR1c0NvZGUgc2hvdWxkIGJlICR7c3RhdHVzQ29kZX1gKTsKKyAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5yZXNwb25z
ZVNvdXJjZSwgcmVzcG9uc2VTb3VyY2UsIGByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgJHtTdHJp
bmcocmVzcG9uc2VTb3VyY2UpfWApOworICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzb2x2ZSwg
cmVqZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgYWRkUmVs
b2FkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVt
b3J5Q2FjaGUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkxvYWQgYSByZXNvdXJjZSBmcm9tIHRo
ZSBtZW1vcnkgY2FjaGUgYnkgcmVsb2FkaW5nIHRoaXMgcGFnZS4iLAorICAgICAgICBwYXR0ZXJu
OiAvY2FjaGVkLXNjcmlwdFwuanMkLywKKyAgICAgICAgaWdub3JlQ2FjaGU6IGZhbHNlLAorICAg
ICAgICByZXNwb25zZVNvdXJjZTogV0kuUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2Fj
aGUsCisgICAgICAgIHN0YXR1c0NvZGU6IDMwNCwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRl
c3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+Cis8cD5UZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5
Q2FjaGVgLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9y
eS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0xNC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJj
ZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMTQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzAyYmY5ZWQwZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVz
b3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25s
eS0xNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0IGZvciBgUmVzb3VyY2UuUmVz
cG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUmVz
b3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBS
ZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorUEFTUzogUmVzb3VyY2Ugc2hvdWxk
IGV4aXN0LgorUEFTUzogc3RhdHVzQ29kZSBzaG91bGQgYmUgMzA0CitQQVNTOiByZXNwb25zZVNv
dXJjZSBzaG91bGQgYmUgU3ltYm9sKG1lbW9yeS1jYWNoZSkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3Vy
Y2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTE0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJj
ZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMTQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2VlNGUyZTcxM2IKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJl
c3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMTQuaHRt
bApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NhY2hlZC1zY3JpcHQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQo
IkxvYWRDb21wbGV0ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0
LmRlYnVnKCk7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3Vp
dGUoIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIik7CisKKyAgICBmdW5jdGlv
biBhZGRSZWxvYWRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb24sIHBhdHRl
cm4sIGlnbm9yZUNhY2hlLCBzdGF0dXNDb2RlLCByZXNwb25zZVNvdXJjZX0pIHsKKyAgICAgICAg
c3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwgZGVzY3JpcHRpb24sCisgICAg
ICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QucmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRhdGVBbGxSZXNvdXJjZXM6IHRy
dWV9KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoIkxvYWRDb21w
bGV0ZSIpLnRoZW4oKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGxldCByZXNvdXJj
ZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgV0kubmV0d29y
a01hbmFnZXIubWFpbkZyYW1lLnJlc291cmNlQ29sbGVjdGlvbikgeworICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChpdGVtLnVybCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXNvdXJjZSA9IGl0ZW07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQgdG8gZmluZCBzcGVjaWZpYyByZXNvdXJj
ZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgpOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXNvdXJjZSBpbnN0YW5jZW9mIFdJLlJlc291
cmNlLCAiUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LiIpOworICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1c0NvZGUsIHN0YXR1c0NvZGUsIGBz
dGF0dXNDb2RlIHNob3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7CisgICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2UucmVzcG9uc2VTb3VyY2UsIHJlc3Bv
bnNlU291cmNlLCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlICR7U3RyaW5nKHJlc3BvbnNlU291
cmNlKX1gKTsKKyAgICAgICAgICAgICAgICB9KS50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIGFkZFJlbG9hZFRlc3RDYXNlKHsK
KyAgICAgICAgbmFtZTogIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIiwKKyAg
ICAgICAgZGVzY3JpcHRpb246ICJMb2FkIGEgcmVzb3VyY2UgZnJvbSB0aGUgbWVtb3J5IGNhY2hl
IGJ5IHJlbG9hZGluZyB0aGlzIHBhZ2UuIiwKKyAgICAgICAgcGF0dGVybjogL2NhY2hlZC1zY3Jp
cHRcLmpzJC8sCisgICAgICAgIGlnbm9yZUNhY2hlOiBmYWxzZSwKKyAgICAgICAgcmVzcG9uc2VT
b3VyY2U6IFdJLlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlLAorICAgICAgICBz
dGF0dXNDb2RlOiAzMDQsCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5p
c2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgor
PHA+VGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC48L3A+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxp
ZGF0ZS1leHBpcmVkLW9ubHktMTUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hl
LXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTE1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNl
LXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMTUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1l
bW9yeUNhY2hlYC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFJlc291cmNlLlJlc3BvbnNl
U291cmNlLk1lbW9yeUNhY2hlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUmVzb3VyY2UuUmVzcG9u
c2VTb3VyY2UuTWVtb3J5Q2FjaGUKK1BBU1M6IFJlc291cmNlIHNob3VsZCBleGlzdC4KK1BBU1M6
IHN0YXR1c0NvZGUgc2hvdWxkIGJlIDMwNAorUEFTUzogcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJl
IFN5bWJvbChtZW1vcnktY2FjaGUpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNo
ZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0xNS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hl
LXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTE1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2Ut
bWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTE1Lmh0bWwKQEAgLTAsMCArMSw1
OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jYWNoZWQtc2NyaXB0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK1Rlc3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5kKCJMb2FkQ29tcGxldGUi
KTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5kZWJ1ZygpOworCisg
ICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJSZXNvdXJjZS5S
ZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIpOworCisgICAgZnVuY3Rpb24gYWRkUmVsb2FkVGVz
dENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9uLCBwYXR0ZXJuLCBpZ25vcmVDYWNo
ZSwgc3RhdHVzQ29kZSwgcmVzcG9uc2VTb3VyY2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RD
YXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgdGVzdChy
ZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBh
Z2Uoe2lnbm9yZUNhY2hlLCByZXZhbGlkYXRlQWxsUmVzb3VyY2VzOiB0cnVlfSk7CisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJMb2FkQ29tcGxldGUiKS50aGVuKChl
dmVudCkgPT4geworICAgICAgICAgICAgICAgICAgICBsZXQgcmVzb3VyY2UgPSBudWxsOworICAg
ICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5G
cmFtZS5yZXNvdXJjZUNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChw
YXR0ZXJuLnRlc3QoaXRlbS51cmwpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz
b3VyY2UgPSBpdGVtOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIGlmICghcmVzb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZmFpbCgiRmFpbGVkIHRvIGZpbmQgc3BlY2lmaWMgcmVzb3VyY2UuIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICByZWplY3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdFRoYXQocmVzb3VyY2UgaW5zdGFuY2VvZiBXSS5SZXNvdXJjZSwgIlJlc291cmNl
IHNob3VsZCBleGlzdC4iKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RFcXVhbChyZXNvdXJjZS5zdGF0dXNDb2RlLCBzdGF0dXNDb2RlLCBgc3RhdHVzQ29kZSBzaG91
bGQgYmUgJHtzdGF0dXNDb2RlfWApOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdEVxdWFsKHJlc291cmNlLnJlc3BvbnNlU291cmNlLCByZXNwb25zZVNvdXJjZSwgYHJl
c3BvbnNlU291cmNlIHNob3VsZCBiZSAke1N0cmluZyhyZXNwb25zZVNvdXJjZSl9YCk7CisgICAg
ICAgICAgICAgICAgfSkudGhlbihyZXNvbHZlLCByZWplY3QpOworICAgICAgICAgICAgfQorICAg
ICAgICB9KTsKKyAgICB9CisKKyAgICBhZGRSZWxvYWRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6
ICJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIsCisgICAgICAgIGRlc2NyaXB0
aW9uOiAiTG9hZCBhIHJlc291cmNlIGZyb20gdGhlIG1lbW9yeSBjYWNoZSBieSByZWxvYWRpbmcg
dGhpcyBwYWdlLiIsCisgICAgICAgIHBhdHRlcm46IC9jYWNoZWQtc2NyaXB0XC5qcyQvLAorICAg
ICAgICBpZ25vcmVDYWNoZTogZmFsc2UsCisgICAgICAgIHJlc3BvbnNlU291cmNlOiBXSS5SZXNv
dXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSwKKyAgICAgICAgc3RhdHVzQ29kZTogMzA0
LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9yIGBS
ZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuPC9wPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9y
ZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1v
bmx5LTE2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4
cGlyZWQtb25seS0xNi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjIzMDJiZjllZDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5
LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTE2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDkgQEAKK1Rlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuCisK
KworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlD
YWNoZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9y
eUNhY2hlCitQQVNTOiBSZXNvdXJjZSBzaG91bGQgZXhpc3QuCitQQVNTOiBzdGF0dXNDb2RlIHNo
b3VsZCBiZSAzMDQKK1BBU1M6IHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSBTeW1ib2wobWVtb3J5
LWNhY2hlKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1l
eHBpcmVkLW9ubHktMTYuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4
cGlyZWQtb25seS0xNi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4zZWU0ZTJlNzEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1y
ZXZhbGlkYXRlLWV4cGlyZWQtb25seS0xNi5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvY2FjaGVkLXNjcmlwdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitUZXN0
UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiTG9hZENvbXBsZXRlIik7CisKK2Z1bmN0aW9u
IHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZGVidWcoKTsKKworICAgIGxldCBzdWl0ZSA9
IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2Uu
TWVtb3J5Q2FjaGUiKTsKKworICAgIGZ1bmN0aW9uIGFkZFJlbG9hZFRlc3RDYXNlKHtuYW1lLCBk
ZXNjcmlwdGlvbiwgZXhwcmVzc2lvbiwgcGF0dGVybiwgaWdub3JlQ2FjaGUsIHN0YXR1c0NvZGUs
IHJlc3BvbnNlU291cmNlfSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAg
ICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0
KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHtpZ25vcmVDYWNo
ZSwgcmV2YWxpZGF0ZUFsbFJlc291cmNlczogdHJ1ZX0pOworICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYXdhaXRFdmVudCgiTG9hZENvbXBsZXRlIikudGhlbigoZXZlbnQpID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgbGV0IHJlc291cmNlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAg
ICAgZm9yIChsZXQgaXRlbSBvZiBXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUucmVzb3VyY2VD
b2xsZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGF0dGVybi50ZXN0KGl0
ZW0udXJsKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlID0gaXRlbTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIXJl
c291cmNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZhaWwoIkZh
aWxlZCB0byBmaW5kIHNwZWNpZmljIHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmVqZWN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0
KHJlc291cmNlIGluc3RhbmNlb2YgV0kuUmVzb3VyY2UsICJSZXNvdXJjZSBzaG91bGQgZXhpc3Qu
Iik7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3Vy
Y2Uuc3RhdHVzQ29kZSwgc3RhdHVzQ29kZSwgYHN0YXR1c0NvZGUgc2hvdWxkIGJlICR7c3RhdHVz
Q29kZX1gKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChy
ZXNvdXJjZS5yZXNwb25zZVNvdXJjZSwgcmVzcG9uc2VTb3VyY2UsIGByZXNwb25zZVNvdXJjZSBz
aG91bGQgYmUgJHtTdHJpbmcocmVzcG9uc2VTb3VyY2UpfWApOworICAgICAgICAgICAgICAgIH0p
LnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAg
fQorCisgICAgYWRkUmVsb2FkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiUmVzb3VyY2UuUmVz
cG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkxvYWQgYSBy
ZXNvdXJjZSBmcm9tIHRoZSBtZW1vcnkgY2FjaGUgYnkgcmVsb2FkaW5nIHRoaXMgcGFnZS4iLAor
ICAgICAgICBwYXR0ZXJuOiAvY2FjaGVkLXNjcmlwdFwuanMkLywKKyAgICAgICAgaWdub3JlQ2Fj
aGU6IGZhbHNlLAorICAgICAgICByZXNwb25zZVNvdXJjZTogV0kuUmVzb3VyY2UuUmVzcG9uc2VT
b3VyY2UuTWVtb3J5Q2FjaGUsCisgICAgICAgIHN0YXR1c0NvZGU6IDMwNCwKKyAgICB9KTsKKwor
ICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9u
c2VTb3VyY2UuTWVtb3J5Q2FjaGVgLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9u
c2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0xNy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNl
LXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMTct
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzAy
YmY5ZWQwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlk
YXRlLWV4cGlyZWQtb25seS0xNy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0IGZv
ciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLgorCisKKz09IFJ1bm5pbmcg
dGVzdCBzdWl0ZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKKy0tIFJ1bm5p
bmcgdGVzdCBjYXNlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorUEFTUzog
UmVzb3VyY2Ugc2hvdWxkIGV4aXN0LgorUEFTUzogc3RhdHVzQ29kZSBzaG91bGQgYmUgMzA0CitQ
QVNTOiByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgU3ltYm9sKG1lbW9yeS1jYWNoZSkKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJj
ZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTE3
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNl
LXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMTcu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2VlNGUyZTcxM2IK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBp
cmVkLW9ubHktMTcuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L2NhY2hlZC1zY3JpcHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorVGVzdFBhZ2UuZGlzcGF0Y2hF
dmVudFRvRnJvbnRlbmQoIkxvYWRDb21wbGV0ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAg
ICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0
LmNyZWF0ZUFzeW5jU3VpdGUoIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIik7
CisKKyAgICBmdW5jdGlvbiBhZGRSZWxvYWRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4
cHJlc3Npb24sIHBhdHRlcm4sIGlnbm9yZUNhY2hlLCBzdGF0dXNDb2RlLCByZXNwb25zZVNvdXJj
ZX0pIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwgZGVz
Y3JpcHRpb24sCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRhdGVB
bGxSZXNvdXJjZXM6IHRydWV9KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0
RXZlbnQoIkxvYWRDb21wbGV0ZSIpLnRoZW4oKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGxldCByZXNvdXJjZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0
ZW0gb2YgV0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1lLnJlc291cmNlQ29sbGVjdGlvbikgewor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChpdGVtLnVybCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSA9IGl0ZW07CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQgdG8gZmluZCBz
cGVjaWZpYyByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXNvdXJjZSBpbnN0
YW5jZW9mIFdJLlJlc291cmNlLCAiUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LiIpOworICAgICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1c0NvZGUs
IHN0YXR1c0NvZGUsIGBzdGF0dXNDb2RlIHNob3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7CisgICAg
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2UucmVzcG9u
c2VTb3VyY2UsIHJlc3BvbnNlU291cmNlLCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlICR7U3Ry
aW5nKHJlc3BvbnNlU291cmNlKX1gKTsKKyAgICAgICAgICAgICAgICB9KS50aGVuKHJlc29sdmUs
IHJlamVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIGFkZFJl
bG9hZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1l
bW9yeUNhY2hlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJMb2FkIGEgcmVzb3VyY2UgZnJvbSB0
aGUgbWVtb3J5IGNhY2hlIGJ5IHJlbG9hZGluZyB0aGlzIHBhZ2UuIiwKKyAgICAgICAgcGF0dGVy
bjogL2NhY2hlZC1zY3JpcHRcLmpzJC8sCisgICAgICAgIGlnbm9yZUNhY2hlOiBmYWxzZSwKKyAg
ICAgICAgcmVzcG9uc2VTb3VyY2U6IFdJLlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNh
Y2hlLAorICAgICAgICBzdGF0dXNDb2RlOiAzMDQsCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5U
ZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgorPHA+VGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9y
eUNhY2hlYC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1v
cnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMTgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3Vy
Y2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTE4LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jl
c291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9u
bHktMTgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdCBmb3IgYFJlc291cmNlLlJl
c3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFJl
c291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCistLSBSdW5uaW5nIHRlc3QgY2FzZTog
UmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKK1BBU1M6IFJlc291cmNlIHNob3Vs
ZCBleGlzdC4KK1BBU1M6IHN0YXR1c0NvZGUgc2hvdWxkIGJlIDMwNAorUEFTUzogcmVzcG9uc2VT
b3VyY2Ugc2hvdWxkIGJlIFN5bWJvbChtZW1vcnktY2FjaGUpCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291
cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0xOC5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3Vy
Y2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTE4Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1y
ZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTE4Lmh0
bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jYWNoZWQtc2NyaXB0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1Rlc3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5k
KCJMb2FkQ29tcGxldGUiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVz
dC5kZWJ1ZygpOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1
aXRlKCJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIpOworCisgICAgZnVuY3Rp
b24gYWRkUmVsb2FkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9uLCBwYXR0
ZXJuLCBpZ25vcmVDYWNoZSwgc3RhdHVzQ29kZSwgcmVzcG9uc2VTb3VyY2V9KSB7CisgICAgICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAg
ICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LnJlbG9hZFBhZ2Uoe2lnbm9yZUNhY2hlLCByZXZhbGlkYXRlQWxsUmVzb3VyY2VzOiB0
cnVlfSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJMb2FkQ29t
cGxldGUiKS50aGVuKChldmVudCkgPT4geworICAgICAgICAgICAgICAgICAgICBsZXQgcmVzb3Vy
Y2UgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIFdJLm5ldHdv
cmtNYW5hZ2VyLm1haW5GcmFtZS5yZXNvdXJjZUNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChwYXR0ZXJuLnRlc3QoaXRlbS51cmwpKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVzb3VyY2UgPSBpdGVtOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgiRmFpbGVkIHRvIGZpbmQgc3BlY2lmaWMgcmVzb3Vy
Y2UuIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocmVzb3VyY2UgaW5zdGFuY2VvZiBXSS5SZXNv
dXJjZSwgIlJlc291cmNlIHNob3VsZCBleGlzdC4iKTsKKyAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5zdGF0dXNDb2RlLCBzdGF0dXNDb2RlLCBg
c3RhdHVzQ29kZSBzaG91bGQgYmUgJHtzdGF0dXNDb2RlfWApOworICAgICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnJlc3BvbnNlU291cmNlLCByZXNw
b25zZVNvdXJjZSwgYHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSAke1N0cmluZyhyZXNwb25zZVNv
dXJjZSl9YCk7CisgICAgICAgICAgICAgICAgfSkudGhlbihyZXNvbHZlLCByZWplY3QpOworICAg
ICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBhZGRSZWxvYWRUZXN0Q2FzZSh7
CisgICAgICAgIG5hbWU6ICJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIsCisg
ICAgICAgIGRlc2NyaXB0aW9uOiAiTG9hZCBhIHJlc291cmNlIGZyb20gdGhlIG1lbW9yeSBjYWNo
ZSBieSByZWxvYWRpbmcgdGhpcyBwYWdlLiIsCisgICAgICAgIHBhdHRlcm46IC9jYWNoZWQtc2Ny
aXB0XC5qcyQvLAorICAgICAgICBpZ25vcmVDYWNoZTogZmFsc2UsCisgICAgICAgIHJlc3BvbnNl
U291cmNlOiBXSS5SZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSwKKyAgICAgICAg
c3RhdHVzQ29kZTogMzA0LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmlu
aXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
KzxwPlRlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuPC9wPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFs
aWRhdGUtZXhwaXJlZC1vbmx5LTE5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNo
ZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0xOS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIzMDJiZjllZDBlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25z
ZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTE5LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5N
ZW1vcnlDYWNoZWAuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBSZXNvdXJjZS5SZXNwb25z
ZVNvdXJjZS5NZW1vcnlDYWNoZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFJlc291cmNlLlJlc3Bv
bnNlU291cmNlLk1lbW9yeUNhY2hlCitQQVNTOiBSZXNvdXJjZSBzaG91bGQgZXhpc3QuCitQQVNT
OiBzdGF0dXNDb2RlIHNob3VsZCBiZSAzMDQKK1BBU1M6IHJlc3BvbnNlU291cmNlIHNob3VsZCBi
ZSBTeW1ib2wobWVtb3J5LWNhY2hlKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2Fj
aGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMTkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNo
ZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0xOS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi4zZWU0ZTJlNzEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNl
LW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0xOS5odG1sCkBAIC0wLDAgKzEs
NTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FjaGVkLXNjcmlwdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CitUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiTG9hZENvbXBsZXRl
Iik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZGVidWcoKTsKKwor
ICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUmVzb3VyY2Uu
UmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiKTsKKworICAgIGZ1bmN0aW9uIGFkZFJlbG9hZFRl
c3RDYXNlKHtuYW1lLCBkZXNjcmlwdGlvbiwgZXhwcmVzc2lvbiwgcGF0dGVybiwgaWdub3JlQ2Fj
aGUsIHN0YXR1c0NvZGUsIHJlc3BvbnNlU291cmNlfSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0
Q2FzZSh7CisgICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIHRlc3Qo
cmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQ
YWdlKHtpZ25vcmVDYWNoZSwgcmV2YWxpZGF0ZUFsbFJlc291cmNlczogdHJ1ZX0pOworICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgiTG9hZENvbXBsZXRlIikudGhlbigo
ZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHJlc291cmNlID0gbnVsbDsKKyAg
ICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBXSS5uZXR3b3JrTWFuYWdlci5tYWlu
RnJhbWUucmVzb3VyY2VDb2xsZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
cGF0dGVybi50ZXN0KGl0ZW0udXJsKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
c291cmNlID0gaXRlbTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICBpZiAoIXJlc291cmNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmZhaWwoIkZhaWxlZCB0byBmaW5kIHNwZWNpZmljIHJlc291cmNlLiIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RUaGF0KHJlc291cmNlIGluc3RhbmNlb2YgV0kuUmVzb3VyY2UsICJSZXNvdXJj
ZSBzaG91bGQgZXhpc3QuIik7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0RXF1YWwocmVzb3VyY2Uuc3RhdHVzQ29kZSwgc3RhdHVzQ29kZSwgYHN0YXR1c0NvZGUgc2hv
dWxkIGJlICR7c3RhdHVzQ29kZX1gKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RFcXVhbChyZXNvdXJjZS5yZXNwb25zZVNvdXJjZSwgcmVzcG9uc2VTb3VyY2UsIGBy
ZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgJHtTdHJpbmcocmVzcG9uc2VTb3VyY2UpfWApOworICAg
ICAgICAgICAgICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgYWRkUmVsb2FkVGVzdENhc2UoeworICAgICAgICBuYW1l
OiAiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiLAorICAgICAgICBkZXNjcmlw
dGlvbjogIkxvYWQgYSByZXNvdXJjZSBmcm9tIHRoZSBtZW1vcnkgY2FjaGUgYnkgcmVsb2FkaW5n
IHRoaXMgcGFnZS4iLAorICAgICAgICBwYXR0ZXJuOiAvY2FjaGVkLXNjcmlwdFwuanMkLywKKyAg
ICAgICAgaWdub3JlQ2FjaGU6IGZhbHNlLAorICAgICAgICByZXNwb25zZVNvdXJjZTogV0kuUmVz
b3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUsCisgICAgICAgIHN0YXR1c0NvZGU6IDMw
NCwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0IGZvciBg
UmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLjwvcD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
cmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQt
b25seS0yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4
cGlyZWQtb25seS0yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uMjMwMmJmOWVkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnkt
Y2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5
IEBACitUZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLgorCisK
Kz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2Fj
aGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlD
YWNoZQorUEFTUzogUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LgorUEFTUzogc3RhdHVzQ29kZSBzaG91
bGQgYmUgMzA0CitQQVNTOiByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgU3ltYm9sKG1lbW9yeS1j
YWNoZSkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhw
aXJlZC1vbmx5LTIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGly
ZWQtb25seS0yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNl
ZTRlMmU3MTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFs
aWRhdGUtZXhwaXJlZC1vbmx5LTIuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2NhY2hlZC1zY3JpcHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorVGVzdFBhZ2Uu
ZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQoIkxvYWRDb21wbGV0ZSIpOworCitmdW5jdGlvbiB0ZXN0
KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNw
ZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9y
eUNhY2hlIik7CisKKyAgICBmdW5jdGlvbiBhZGRSZWxvYWRUZXN0Q2FzZSh7bmFtZSwgZGVzY3Jp
cHRpb24sIGV4cHJlc3Npb24sIHBhdHRlcm4sIGlnbm9yZUNhY2hlLCBzdGF0dXNDb2RlLCByZXNw
b25zZVNvdXJjZX0pIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAg
bmFtZSwgZGVzY3JpcHRpb24sCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJl
dmFsaWRhdGVBbGxSZXNvdXJjZXM6IHRydWV9KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmF3YWl0RXZlbnQoIkxvYWRDb21wbGV0ZSIpLnRoZW4oKGV2ZW50KSA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGZv
ciAobGV0IGl0ZW0gb2YgV0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1lLnJlc291cmNlQ29sbGVj
dGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChpdGVtLnVy
bCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSA9IGl0ZW07CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNvdXJj
ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQg
dG8gZmluZCBzcGVjaWZpYyByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
amVjdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXNv
dXJjZSBpbnN0YW5jZW9mIFdJLlJlc291cmNlLCAiUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LiIpOwor
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0
YXR1c0NvZGUsIHN0YXR1c0NvZGUsIGBzdGF0dXNDb2RlIHNob3VsZCBiZSAke3N0YXR1c0NvZGV9
YCk7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3Vy
Y2UucmVzcG9uc2VTb3VyY2UsIHJlc3BvbnNlU291cmNlLCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxk
IGJlICR7U3RyaW5nKHJlc3BvbnNlU291cmNlKX1gKTsKKyAgICAgICAgICAgICAgICB9KS50aGVu
KHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIGFkZFJlbG9hZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlJlc291cmNlLlJlc3BvbnNl
U291cmNlLk1lbW9yeUNhY2hlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJMb2FkIGEgcmVzb3Vy
Y2UgZnJvbSB0aGUgbWVtb3J5IGNhY2hlIGJ5IHJlbG9hZGluZyB0aGlzIHBhZ2UuIiwKKyAgICAg
ICAgcGF0dGVybjogL2NhY2hlZC1zY3JpcHRcLmpzJC8sCisgICAgICAgIGlnbm9yZUNhY2hlOiBm
YWxzZSwKKyAgICAgICAgcmVzcG9uc2VTb3VyY2U6IFdJLlJlc291cmNlLlJlc3BvbnNlU291cmNl
Lk1lbW9yeUNhY2hlLAorICAgICAgICBzdGF0dXNDb2RlOiAzMDQsCisgICAgfSk7CisKKyAgICBz
dWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291
cmNlLk1lbW9yeUNhY2hlYC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNv
dXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMjAtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNw
b25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTIwLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVk
MGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1l
eHBpcmVkLW9ubHktMjAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdCBmb3IgYFJl
c291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC4KKworCis9PSBSdW5uaW5nIHRlc3Qg
c3VpdGU6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCistLSBSdW5uaW5nIHRl
c3QgY2FzZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKK1BBU1M6IFJlc291
cmNlIHNob3VsZCBleGlzdC4KK1BBU1M6IHN0YXR1c0NvZGUgc2hvdWxkIGJlIDMwNAorUEFTUzog
cmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlIFN5bWJvbChtZW1vcnktY2FjaGUpCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVz
cG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0yMC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNw
b25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTIwLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9y
ZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1v
bmx5LTIwLmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jYWNo
ZWQtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1Rlc3RQYWdlLmRpc3BhdGNoRXZlbnRU
b0Zyb250ZW5kKCJMb2FkQ29tcGxldGUiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5z
cGVjdG9yVGVzdC5kZWJ1ZygpOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVh
dGVBc3luY1N1aXRlKCJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIpOworCisg
ICAgZnVuY3Rpb24gYWRkUmVsb2FkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNz
aW9uLCBwYXR0ZXJuLCBpZ25vcmVDYWNoZSwgc3RhdHVzQ29kZSwgcmVzcG9uc2VTb3VyY2V9KSB7
CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0
aW9uLAorICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoe2lnbm9yZUNhY2hlLCByZXZhbGlkYXRlQWxsUmVz
b3VyY2VzOiB0cnVlfSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50
KCJMb2FkQ29tcGxldGUiKS50aGVuKChldmVudCkgPT4geworICAgICAgICAgICAgICAgICAgICBs
ZXQgcmVzb3VyY2UgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9m
IFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5yZXNvdXJjZUNvbGxlY3Rpb24pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJuLnRlc3QoaXRlbS51cmwpKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSBpdGVtOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2UpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgiRmFpbGVkIHRvIGZpbmQgc3BlY2lm
aWMgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocmVzb3VyY2UgaW5zdGFuY2Vv
ZiBXSS5SZXNvdXJjZSwgIlJlc291cmNlIHNob3VsZCBleGlzdC4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5zdGF0dXNDb2RlLCBzdGF0
dXNDb2RlLCBgc3RhdHVzQ29kZSBzaG91bGQgYmUgJHtzdGF0dXNDb2RlfWApOworICAgICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnJlc3BvbnNlU291
cmNlLCByZXNwb25zZVNvdXJjZSwgYHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSAke1N0cmluZyhy
ZXNwb25zZVNvdXJjZSl9YCk7CisgICAgICAgICAgICAgICAgfSkudGhlbihyZXNvbHZlLCByZWpl
Y3QpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBhZGRSZWxvYWRU
ZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlD
YWNoZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiTG9hZCBhIHJlc291cmNlIGZyb20gdGhlIG1l
bW9yeSBjYWNoZSBieSByZWxvYWRpbmcgdGhpcyBwYWdlLiIsCisgICAgICAgIHBhdHRlcm46IC9j
YWNoZWQtc2NyaXB0XC5qcyQvLAorICAgICAgICBpZ25vcmVDYWNoZTogZmFsc2UsCisgICAgICAg
IHJlc3BvbnNlU291cmNlOiBXSS5SZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSwK
KyAgICAgICAgc3RhdHVzQ29kZTogMzA0LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENh
c2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KKzxwPlRlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNo
ZWAuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNh
Y2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTIxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1l
bW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0yMS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIzMDJiZjllZDBlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJj
ZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTIx
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25z
ZVNvdXJjZS5NZW1vcnlDYWNoZWAuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBSZXNvdXJj
ZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFJlc291
cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCitQQVNTOiBSZXNvdXJjZSBzaG91bGQgZXhp
c3QuCitQQVNTOiBzdGF0dXNDb2RlIHNob3VsZCBiZSAzMDQKK1BBU1M6IHJlc3BvbnNlU291cmNl
IHNob3VsZCBiZSBTeW1ib2wobWVtb3J5LWNhY2hlKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1t
ZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMjEuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1l
bW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0yMS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZWU0ZTJlNzEzYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9u
c2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0yMS5odG1sCkBA
IC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FjaGVkLXNjcmlwdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CitUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiTG9h
ZENvbXBsZXRlIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZGVi
dWcoKTsKKworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgi
UmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiKTsKKworICAgIGZ1bmN0aW9uIGFk
ZFJlbG9hZFRlc3RDYXNlKHtuYW1lLCBkZXNjcmlwdGlvbiwgZXhwcmVzc2lvbiwgcGF0dGVybiwg
aWdub3JlQ2FjaGUsIHN0YXR1c0NvZGUsIHJlc3BvbnNlU291cmNlfSkgeworICAgICAgICBzdWl0
ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKKyAgICAgICAg
ICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5yZWxvYWRQYWdlKHtpZ25vcmVDYWNoZSwgcmV2YWxpZGF0ZUFsbFJlc291cmNlczogdHJ1ZX0p
OworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgiTG9hZENvbXBsZXRl
IikudGhlbigoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHJlc291cmNlID0g
bnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBXSS5uZXR3b3JrTWFu
YWdlci5tYWluRnJhbWUucmVzb3VyY2VDb2xsZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAocGF0dGVybi50ZXN0KGl0ZW0udXJsKSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlc291cmNlID0gaXRlbTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICBpZiAoIXJlc291cmNlKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmZhaWwoIkZhaWxlZCB0byBmaW5kIHNwZWNpZmljIHJlc291cmNlLiIp
OworICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHJlc291cmNlIGluc3RhbmNlb2YgV0kuUmVzb3VyY2Us
ICJSZXNvdXJjZSBzaG91bGQgZXhpc3QuIik7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uuc3RhdHVzQ29kZSwgc3RhdHVzQ29kZSwgYHN0YXR1
c0NvZGUgc2hvdWxkIGJlICR7c3RhdHVzQ29kZX1gKTsKKyAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5yZXNwb25zZVNvdXJjZSwgcmVzcG9uc2VT
b3VyY2UsIGByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgJHtTdHJpbmcocmVzcG9uc2VTb3VyY2Up
fWApOworICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgYWRkUmVsb2FkVGVzdENhc2UoeworICAg
ICAgICBuYW1lOiAiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiLAorICAgICAg
ICBkZXNjcmlwdGlvbjogIkxvYWQgYSByZXNvdXJjZSBmcm9tIHRoZSBtZW1vcnkgY2FjaGUgYnkg
cmVsb2FkaW5nIHRoaXMgcGFnZS4iLAorICAgICAgICBwYXR0ZXJuOiAvY2FjaGVkLXNjcmlwdFwu
anMkLywKKyAgICAgICAgaWdub3JlQ2FjaGU6IGZhbHNlLAorICAgICAgICByZXNwb25zZVNvdXJj
ZTogV0kuUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUsCisgICAgICAgIHN0YXR1
c0NvZGU6IDMwNCwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgp
OworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5U
ZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLjwvcD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRl
LWV4cGlyZWQtb25seS0yMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2
YWxpZGF0ZS1leHBpcmVkLW9ubHktMjItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi4yMzAyYmY5ZWQwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291
cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0yMi1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw5IEBACitUZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5
Q2FjaGVgLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUmVzb3VyY2UuUmVzcG9uc2VTb3Vy
Y2UuTWVtb3J5Q2FjaGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBSZXNvdXJjZS5SZXNwb25zZVNv
dXJjZS5NZW1vcnlDYWNoZQorUEFTUzogUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LgorUEFTUzogc3Rh
dHVzQ29kZSBzaG91bGQgYmUgMzA0CitQQVNTOiByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgU3lt
Ym9sKG1lbW9yeS1jYWNoZSkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJl
dmFsaWRhdGUtZXhwaXJlZC1vbmx5LTIyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2
YWxpZGF0ZS1leHBpcmVkLW9ubHktMjIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uM2VlNGUyZTcxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1v
cnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMjIuaHRtbApAQCAtMCwwICsxLDU4IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NhY2hlZC1zY3JpcHQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQoIkxvYWRDb21wbGV0ZSIpOwor
CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAgICBs
ZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJlc291cmNlLlJlc3Bv
bnNlU291cmNlLk1lbW9yeUNhY2hlIik7CisKKyAgICBmdW5jdGlvbiBhZGRSZWxvYWRUZXN0Q2Fz
ZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb24sIHBhdHRlcm4sIGlnbm9yZUNhY2hlLCBz
dGF0dXNDb2RlLCByZXNwb25zZVNvdXJjZX0pIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2Uo
eworICAgICAgICAgICAgbmFtZSwgZGVzY3JpcHRpb24sCisgICAgICAgICAgICB0ZXN0KHJlc29s
dmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSh7
aWdub3JlQ2FjaGUsIHJldmFsaWRhdGVBbGxSZXNvdXJjZXM6IHRydWV9KTsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoIkxvYWRDb21wbGV0ZSIpLnRoZW4oKGV2ZW50
KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9IG51bGw7CisgICAgICAg
ICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgV0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1l
LnJlc291cmNlQ29sbGVjdGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhdHRl
cm4udGVzdChpdGVtLnVybCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJj
ZSA9IGl0ZW07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgaWYgKCFyZXNvdXJjZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5mYWlsKCJGYWlsZWQgdG8gZmluZCBzcGVjaWZpYyByZXNvdXJjZS4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJlamVjdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0VGhhdChyZXNvdXJjZSBpbnN0YW5jZW9mIFdJLlJlc291cmNlLCAiUmVzb3VyY2Ugc2hv
dWxkIGV4aXN0LiIpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVx
dWFsKHJlc291cmNlLnN0YXR1c0NvZGUsIHN0YXR1c0NvZGUsIGBzdGF0dXNDb2RlIHNob3VsZCBi
ZSAke3N0YXR1c0NvZGV9YCk7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0RXF1YWwocmVzb3VyY2UucmVzcG9uc2VTb3VyY2UsIHJlc3BvbnNlU291cmNlLCBgcmVzcG9u
c2VTb3VyY2Ugc2hvdWxkIGJlICR7U3RyaW5nKHJlc3BvbnNlU291cmNlKX1gKTsKKyAgICAgICAg
ICAgICAgICB9KS50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0pOworICAgIH0KKworICAgIGFkZFJlbG9hZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlJl
c291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIiwKKyAgICAgICAgZGVzY3JpcHRpb246
ICJMb2FkIGEgcmVzb3VyY2UgZnJvbSB0aGUgbWVtb3J5IGNhY2hlIGJ5IHJlbG9hZGluZyB0aGlz
IHBhZ2UuIiwKKyAgICAgICAgcGF0dGVybjogL2NhY2hlZC1zY3JpcHRcLmpzJC8sCisgICAgICAg
IGlnbm9yZUNhY2hlOiBmYWxzZSwKKyAgICAgICAgcmVzcG9uc2VTb3VyY2U6IFdJLlJlc291cmNl
LlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlLAorICAgICAgICBzdGF0dXNDb2RlOiAzMDQsCisg
ICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdCBmb3IgYFJlc291
cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291
cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHkt
MjMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJl
ZC1vbmx5LTIzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uMjMwMmJmOWVkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2Fj
aGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMjMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBA
QAorVGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC4KKworCis9
PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hl
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2Fj
aGUKK1BBU1M6IFJlc291cmNlIHNob3VsZCBleGlzdC4KK1BBU1M6IHN0YXR1c0NvZGUgc2hvdWxk
IGJlIDMwNAorUEFTUzogcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlIFN5bWJvbChtZW1vcnktY2Fj
aGUpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGly
ZWQtb25seS0yMy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJl
ZC1vbmx5LTIzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNl
ZTRlMmU3MTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFs
aWRhdGUtZXhwaXJlZC1vbmx5LTIzLmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9jYWNoZWQtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1Rlc3RQYWdl
LmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5kKCJMb2FkQ29tcGxldGUiKTsKKworZnVuY3Rpb24gdGVz
dCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5kZWJ1ZygpOworCisgICAgbGV0IHN1aXRlID0gSW5z
cGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1v
cnlDYWNoZSIpOworCisgICAgZnVuY3Rpb24gYWRkUmVsb2FkVGVzdENhc2Uoe25hbWUsIGRlc2Ny
aXB0aW9uLCBleHByZXNzaW9uLCBwYXR0ZXJuLCBpZ25vcmVDYWNoZSwgc3RhdHVzQ29kZSwgcmVz
cG9uc2VTb3VyY2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAg
IG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoe2lnbm9yZUNhY2hlLCBy
ZXZhbGlkYXRlQWxsUmVzb3VyY2VzOiB0cnVlfSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hd2FpdEV2ZW50KCJMb2FkQ29tcGxldGUiKS50aGVuKChldmVudCkgPT4geworICAgICAg
ICAgICAgICAgICAgICBsZXQgcmVzb3VyY2UgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBm
b3IgKGxldCBpdGVtIG9mIFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5yZXNvdXJjZUNvbGxl
Y3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJuLnRlc3QoaXRlbS51
cmwpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSBpdGVtOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghcmVzb3Vy
Y2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgiRmFpbGVk
IHRvIGZpbmQgc3BlY2lmaWMgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZWplY3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocmVz
b3VyY2UgaW5zdGFuY2VvZiBXSS5SZXNvdXJjZSwgIlJlc291cmNlIHNob3VsZCBleGlzdC4iKTsK
KyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5z
dGF0dXNDb2RlLCBzdGF0dXNDb2RlLCBgc3RhdHVzQ29kZSBzaG91bGQgYmUgJHtzdGF0dXNDb2Rl
fWApOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291
cmNlLnJlc3BvbnNlU291cmNlLCByZXNwb25zZVNvdXJjZSwgYHJlc3BvbnNlU291cmNlIHNob3Vs
ZCBiZSAke1N0cmluZyhyZXNwb25zZVNvdXJjZSl9YCk7CisgICAgICAgICAgICAgICAgfSkudGhl
bihyZXNvbHZlLCByZWplY3QpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisK
KyAgICBhZGRSZWxvYWRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJSZXNvdXJjZS5SZXNwb25z
ZVNvdXJjZS5NZW1vcnlDYWNoZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiTG9hZCBhIHJlc291
cmNlIGZyb20gdGhlIG1lbW9yeSBjYWNoZSBieSByZWxvYWRpbmcgdGhpcyBwYWdlLiIsCisgICAg
ICAgIHBhdHRlcm46IC9jYWNoZWQtc2NyaXB0XC5qcyQvLAorICAgICAgICBpZ25vcmVDYWNoZTog
ZmFsc2UsCisgICAgICAgIHJlc3BvbnNlU291cmNlOiBXSS5SZXNvdXJjZS5SZXNwb25zZVNvdXJj
ZS5NZW1vcnlDYWNoZSwKKyAgICAgICAgc3RhdHVzQ29kZTogMzA0LAorICAgIH0pOworCisgICAg
c3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNv
dXJjZS5NZW1vcnlDYWNoZWAuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1z
b3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTI0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVz
cG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0yNC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIzMDJiZjll
ZDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUt
ZXhwaXJlZC1vbmx5LTI0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3QgZm9yIGBS
ZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuCisKKworPT0gUnVubmluZyB0ZXN0
IHN1aXRlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorLS0gUnVubmluZyB0
ZXN0IGNhc2U6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCitQQVNTOiBSZXNv
dXJjZSBzaG91bGQgZXhpc3QuCitQQVNTOiBzdGF0dXNDb2RlIHNob3VsZCBiZSAzMDQKK1BBU1M6
IHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSBTeW1ib2wobWVtb3J5LWNhY2hlKQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJl
c3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMjQuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVz
cG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0yNC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZWU0ZTJlNzEzYgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
cmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQt
b25seS0yNC5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2Fj
aGVkLXNjcmlwdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitUZXN0UGFnZS5kaXNwYXRjaEV2ZW50
VG9Gcm9udGVuZCgiTG9hZENvbXBsZXRlIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIElu
c3BlY3RvclRlc3QuZGVidWcoKTsKKworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3Jl
YXRlQXN5bmNTdWl0ZSgiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiKTsKKwor
ICAgIGZ1bmN0aW9uIGFkZFJlbG9hZFRlc3RDYXNlKHtuYW1lLCBkZXNjcmlwdGlvbiwgZXhwcmVz
c2lvbiwgcGF0dGVybiwgaWdub3JlQ2FjaGUsIHN0YXR1c0NvZGUsIHJlc3BvbnNlU291cmNlfSkg
eworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLCBkZXNjcmlw
dGlvbiwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHtpZ25vcmVDYWNoZSwgcmV2YWxpZGF0ZUFsbFJl
c291cmNlczogdHJ1ZX0pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRFdmVu
dCgiTG9hZENvbXBsZXRlIikudGhlbigoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
bGV0IHJlc291cmNlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBv
ZiBXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUucmVzb3VyY2VDb2xsZWN0aW9uKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAocGF0dGVybi50ZXN0KGl0ZW0udXJsKSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlID0gaXRlbTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc291cmNlKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZhaWwoIkZhaWxlZCB0byBmaW5kIHNwZWNp
ZmljIHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHJlc291cmNlIGluc3RhbmNl
b2YgV0kuUmVzb3VyY2UsICJSZXNvdXJjZSBzaG91bGQgZXhpc3QuIik7CisgICAgICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uuc3RhdHVzQ29kZSwgc3Rh
dHVzQ29kZSwgYHN0YXR1c0NvZGUgc2hvdWxkIGJlICR7c3RhdHVzQ29kZX1gKTsKKyAgICAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5yZXNwb25zZVNv
dXJjZSwgcmVzcG9uc2VTb3VyY2UsIGByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgJHtTdHJpbmco
cmVzcG9uc2VTb3VyY2UpfWApOworICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVq
ZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgYWRkUmVsb2Fk
VGVzdENhc2UoeworICAgICAgICBuYW1lOiAiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5
Q2FjaGUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkxvYWQgYSByZXNvdXJjZSBmcm9tIHRoZSBt
ZW1vcnkgY2FjaGUgYnkgcmVsb2FkaW5nIHRoaXMgcGFnZS4iLAorICAgICAgICBwYXR0ZXJuOiAv
Y2FjaGVkLXNjcmlwdFwuanMkLywKKyAgICAgICAgaWdub3JlQ2FjaGU6IGZhbHNlLAorICAgICAg
ICByZXNwb25zZVNvdXJjZTogV0kuUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUs
CisgICAgICAgIHN0YXR1c0NvZGU6IDMwNCwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RD
YXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Cis8cD5UZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2Fj
aGVgLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1j
YWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0yNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1t
ZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMjUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzAyYmY5ZWQwZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3Vy
Y2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0y
NS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9u
c2VTb3VyY2UuTWVtb3J5Q2FjaGVgLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUmVzb3Vy
Y2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBSZXNv
dXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorUEFTUzogUmVzb3VyY2Ugc2hvdWxkIGV4
aXN0LgorUEFTUzogc3RhdHVzQ29kZSBzaG91bGQgYmUgMzA0CitQQVNTOiByZXNwb25zZVNvdXJj
ZSBzaG91bGQgYmUgU3ltYm9sKG1lbW9yeS1jYWNoZSkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2Ut
bWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTI1Lmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1t
ZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMjUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2VlNGUyZTcxM2IKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3Bv
bnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMjUuaHRtbApA
QCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NhY2hlZC1zY3JpcHQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQoIkxv
YWRDb21wbGV0ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmRl
YnVnKCk7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUo
IlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIik7CisKKyAgICBmdW5jdGlvbiBh
ZGRSZWxvYWRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb24sIHBhdHRlcm4s
IGlnbm9yZUNhY2hlLCBzdGF0dXNDb2RlLCByZXNwb25zZVNvdXJjZX0pIHsKKyAgICAgICAgc3Vp
dGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwgZGVzY3JpcHRpb24sCisgICAgICAg
ICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QucmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRhdGVBbGxSZXNvdXJjZXM6IHRydWV9
KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoIkxvYWRDb21wbGV0
ZSIpLnRoZW4oKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9
IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgV0kubmV0d29ya01h
bmFnZXIubWFpbkZyYW1lLnJlc291cmNlQ29sbGVjdGlvbikgeworICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKHBhdHRlcm4udGVzdChpdGVtLnVybCkpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXNvdXJjZSA9IGl0ZW07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQgdG8gZmluZCBzcGVjaWZpYyByZXNvdXJjZS4i
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXNvdXJjZSBpbnN0YW5jZW9mIFdJLlJlc291cmNl
LCAiUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LiIpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1c0NvZGUsIHN0YXR1c0NvZGUsIGBzdGF0
dXNDb2RlIHNob3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7CisgICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2UucmVzcG9uc2VTb3VyY2UsIHJlc3BvbnNl
U291cmNlLCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlICR7U3RyaW5nKHJlc3BvbnNlU291cmNl
KX1gKTsKKyAgICAgICAgICAgICAgICB9KS50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIGFkZFJlbG9hZFRlc3RDYXNlKHsKKyAg
ICAgICAgbmFtZTogIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIiwKKyAgICAg
ICAgZGVzY3JpcHRpb246ICJMb2FkIGEgcmVzb3VyY2UgZnJvbSB0aGUgbWVtb3J5IGNhY2hlIGJ5
IHJlbG9hZGluZyB0aGlzIHBhZ2UuIiwKKyAgICAgICAgcGF0dGVybjogL2NhY2hlZC1zY3JpcHRc
LmpzJC8sCisgICAgICAgIGlnbm9yZUNhY2hlOiBmYWxzZSwKKyAgICAgICAgcmVzcG9uc2VTb3Vy
Y2U6IFdJLlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlLAorICAgICAgICBzdGF0
dXNDb2RlOiAzMDQsCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2go
KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+
VGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC48L3A+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0
ZS1leHBpcmVkLW9ubHktMjYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJl
dmFsaWRhdGUtZXhwaXJlZC1vbmx5LTI2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNv
dXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMjYtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsOSBAQAorVGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9y
eUNhY2hlYC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFJlc291cmNlLlJlc3BvbnNlU291
cmNlLk1lbW9yeUNhY2hlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUmVzb3VyY2UuUmVzcG9uc2VT
b3VyY2UuTWVtb3J5Q2FjaGUKK1BBU1M6IFJlc291cmNlIHNob3VsZCBleGlzdC4KK1BBU1M6IHN0
YXR1c0NvZGUgc2hvdWxkIGJlIDMwNAorUEFTUzogcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlIFN5
bWJvbChtZW1vcnktY2FjaGUpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1y
ZXZhbGlkYXRlLWV4cGlyZWQtb25seS0yNi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJl
dmFsaWRhdGUtZXhwaXJlZC1vbmx5LTI2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVt
b3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTI2Lmh0bWwKQEAgLTAsMCArMSw1OCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jYWNoZWQtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK1Rlc3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5kKCJMb2FkQ29tcGxldGUiKTsK
KworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5kZWJ1ZygpOworCisgICAg
bGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJSZXNvdXJjZS5SZXNw
b25zZVNvdXJjZS5NZW1vcnlDYWNoZSIpOworCisgICAgZnVuY3Rpb24gYWRkUmVsb2FkVGVzdENh
c2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9uLCBwYXR0ZXJuLCBpZ25vcmVDYWNoZSwg
c3RhdHVzQ29kZSwgcmVzcG9uc2VTb3VyY2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNl
KHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgdGVzdChyZXNv
bHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uo
e2lnbm9yZUNhY2hlLCByZXZhbGlkYXRlQWxsUmVzb3VyY2VzOiB0cnVlfSk7CisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJMb2FkQ29tcGxldGUiKS50aGVuKChldmVu
dCkgPT4geworICAgICAgICAgICAgICAgICAgICBsZXQgcmVzb3VyY2UgPSBudWxsOworICAgICAg
ICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFt
ZS5yZXNvdXJjZUNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXR0
ZXJuLnRlc3QoaXRlbS51cmwpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3Vy
Y2UgPSBpdGVtOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIGlmICghcmVzb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZmFpbCgiRmFpbGVkIHRvIGZpbmQgc3BlY2lmaWMgcmVzb3VyY2UuIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICByZWplY3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQocmVzb3VyY2UgaW5zdGFuY2VvZiBXSS5SZXNvdXJjZSwgIlJlc291cmNlIHNo
b3VsZCBleGlzdC4iKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RF
cXVhbChyZXNvdXJjZS5zdGF0dXNDb2RlLCBzdGF0dXNDb2RlLCBgc3RhdHVzQ29kZSBzaG91bGQg
YmUgJHtzdGF0dXNDb2RlfWApOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdEVxdWFsKHJlc291cmNlLnJlc3BvbnNlU291cmNlLCByZXNwb25zZVNvdXJjZSwgYHJlc3Bv
bnNlU291cmNlIHNob3VsZCBiZSAke1N0cmluZyhyZXNwb25zZVNvdXJjZSl9YCk7CisgICAgICAg
ICAgICAgICAgfSkudGhlbihyZXNvbHZlLCByZWplY3QpOworICAgICAgICAgICAgfQorICAgICAg
ICB9KTsKKyAgICB9CisKKyAgICBhZGRSZWxvYWRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJS
ZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIsCisgICAgICAgIGRlc2NyaXB0aW9u
OiAiTG9hZCBhIHJlc291cmNlIGZyb20gdGhlIG1lbW9yeSBjYWNoZSBieSByZWxvYWRpbmcgdGhp
cyBwYWdlLiIsCisgICAgICAgIHBhdHRlcm46IC9jYWNoZWQtc2NyaXB0XC5qcyQvLAorICAgICAg
ICBpZ25vcmVDYWNoZTogZmFsc2UsCisgICAgICAgIHJlc3BvbnNlU291cmNlOiBXSS5SZXNvdXJj
ZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSwKKyAgICAgICAgc3RhdHVzQ29kZTogMzA0LAor
ICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9yIGBSZXNv
dXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuPC9wPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNv
dXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5
LTI3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGly
ZWQtb25seS0yNy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjIzMDJiZjllZDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNh
Y2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTI3LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkg
QEAKK1Rlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuCisKKwor
PT0gUnVubmluZyB0ZXN0IHN1aXRlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNo
ZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNh
Y2hlCitQQVNTOiBSZXNvdXJjZSBzaG91bGQgZXhpc3QuCitQQVNTOiBzdGF0dXNDb2RlIHNob3Vs
ZCBiZSAzMDQKK1BBU1M6IHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSBTeW1ib2wobWVtb3J5LWNh
Y2hlKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBp
cmVkLW9ubHktMjcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGly
ZWQtb25seS0yNy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4z
ZWU0ZTJlNzEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZh
bGlkYXRlLWV4cGlyZWQtb25seS0yNy5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvY2FjaGVkLXNjcmlwdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitUZXN0UGFn
ZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiTG9hZENvbXBsZXRlIik7CisKK2Z1bmN0aW9uIHRl
c3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZGVidWcoKTsKKworICAgIGxldCBzdWl0ZSA9IElu
c3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVt
b3J5Q2FjaGUiKTsKKworICAgIGZ1bmN0aW9uIGFkZFJlbG9hZFRlc3RDYXNlKHtuYW1lLCBkZXNj
cmlwdGlvbiwgZXhwcmVzc2lvbiwgcGF0dGVybiwgaWdub3JlQ2FjaGUsIHN0YXR1c0NvZGUsIHJl
c3BvbnNlU291cmNlfSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAg
ICBuYW1lLCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHtpZ25vcmVDYWNoZSwg
cmV2YWxpZGF0ZUFsbFJlc291cmNlczogdHJ1ZX0pOworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXdhaXRFdmVudCgiTG9hZENvbXBsZXRlIikudGhlbigoZXZlbnQpID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgbGV0IHJlc291cmNlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAg
Zm9yIChsZXQgaXRlbSBvZiBXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUucmVzb3VyY2VDb2xs
ZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGF0dGVybi50ZXN0KGl0ZW0u
dXJsKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlID0gaXRlbTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc291
cmNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZhaWwoIkZhaWxl
ZCB0byBmaW5kIHNwZWNpZmljIHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAg
cmVqZWN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHJl
c291cmNlIGluc3RhbmNlb2YgV0kuUmVzb3VyY2UsICJSZXNvdXJjZSBzaG91bGQgZXhpc3QuIik7
CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uu
c3RhdHVzQ29kZSwgc3RhdHVzQ29kZSwgYHN0YXR1c0NvZGUgc2hvdWxkIGJlICR7c3RhdHVzQ29k
ZX1gKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNv
dXJjZS5yZXNwb25zZVNvdXJjZSwgcmVzcG9uc2VTb3VyY2UsIGByZXNwb25zZVNvdXJjZSBzaG91
bGQgYmUgJHtTdHJpbmcocmVzcG9uc2VTb3VyY2UpfWApOworICAgICAgICAgICAgICAgIH0pLnRo
ZW4ocmVzb2x2ZSwgcmVqZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQor
CisgICAgYWRkUmVsb2FkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiUmVzb3VyY2UuUmVzcG9u
c2VTb3VyY2UuTWVtb3J5Q2FjaGUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkxvYWQgYSByZXNv
dXJjZSBmcm9tIHRoZSBtZW1vcnkgY2FjaGUgYnkgcmVsb2FkaW5nIHRoaXMgcGFnZS4iLAorICAg
ICAgICBwYXR0ZXJuOiAvY2FjaGVkLXNjcmlwdFwuanMkLywKKyAgICAgICAgaWdub3JlQ2FjaGU6
IGZhbHNlLAorICAgICAgICByZXNwb25zZVNvdXJjZTogV0kuUmVzb3VyY2UuUmVzcG9uc2VTb3Vy
Y2UuTWVtb3J5Q2FjaGUsCisgICAgICAgIHN0YXR1c0NvZGU6IDMwNCwKKyAgICB9KTsKKworICAg
IHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VT
b3VyY2UuTWVtb3J5Q2FjaGVgLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Ut
c291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0yOC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJl
c3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMjgtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzAyYmY5
ZWQwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRl
LWV4cGlyZWQtb25seS0yOC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0IGZvciBg
UmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLgorCisKKz09IFJ1bm5pbmcgdGVz
dCBzdWl0ZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorUEFTUzogUmVz
b3VyY2Ugc2hvdWxkIGV4aXN0LgorUEFTUzogc3RhdHVzQ29kZSBzaG91bGQgYmUgMzA0CitQQVNT
OiByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgU3ltYm9sKG1lbW9yeS1jYWNoZSkKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1y
ZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTI4Lmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJl
c3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMjguaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2VlNGUyZTcxM2IKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVk
LW9ubHktMjguaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Nh
Y2hlZC1zY3JpcHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9pbnNw
ZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorVGVzdFBhZ2UuZGlzcGF0Y2hFdmVu
dFRvRnJvbnRlbmQoIkxvYWRDb21wbGV0ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJ
bnNwZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNy
ZWF0ZUFzeW5jU3VpdGUoIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIik7CisK
KyAgICBmdW5jdGlvbiBhZGRSZWxvYWRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJl
c3Npb24sIHBhdHRlcm4sIGlnbm9yZUNhY2hlLCBzdGF0dXNDb2RlLCByZXNwb25zZVNvdXJjZX0p
IHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwgZGVzY3Jp
cHRpb24sCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRhdGVBbGxS
ZXNvdXJjZXM6IHRydWV9KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0RXZl
bnQoIkxvYWRDb21wbGV0ZSIpLnRoZW4oKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGxldCByZXNvdXJjZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0g
b2YgV0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1lLnJlc291cmNlQ29sbGVjdGlvbikgeworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChpdGVtLnVybCkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSA9IGl0ZW07CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQgdG8gZmluZCBzcGVj
aWZpYyByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXNvdXJjZSBpbnN0YW5j
ZW9mIFdJLlJlc291cmNlLCAiUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LiIpOworICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1c0NvZGUsIHN0
YXR1c0NvZGUsIGBzdGF0dXNDb2RlIHNob3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7CisgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2UucmVzcG9uc2VT
b3VyY2UsIHJlc3BvbnNlU291cmNlLCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlICR7U3RyaW5n
KHJlc3BvbnNlU291cmNlKX1gKTsKKyAgICAgICAgICAgICAgICB9KS50aGVuKHJlc29sdmUsIHJl
amVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIGFkZFJlbG9h
ZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9y
eUNhY2hlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJMb2FkIGEgcmVzb3VyY2UgZnJvbSB0aGUg
bWVtb3J5IGNhY2hlIGJ5IHJlbG9hZGluZyB0aGlzIHBhZ2UuIiwKKyAgICAgICAgcGF0dGVybjog
L2NhY2hlZC1zY3JpcHRcLmpzJC8sCisgICAgICAgIGlnbm9yZUNhY2hlOiBmYWxzZSwKKyAgICAg
ICAgcmVzcG9uc2VTb3VyY2U6IFdJLlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hl
LAorICAgICAgICBzdGF0dXNDb2RlOiAzMDQsCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0
Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgorPHA+VGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNh
Y2hlYC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnkt
Y2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMjktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2Ut
bWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTI5LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291
cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHkt
MjktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdCBmb3IgYFJlc291cmNlLlJlc3Bv
bnNlU291cmNlLk1lbW9yeUNhY2hlYC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFJlc291
cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUmVz
b3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKK1BBU1M6IFJlc291cmNlIHNob3VsZCBl
eGlzdC4KK1BBU1M6IHN0YXR1c0NvZGUgc2hvdWxkIGJlIDMwNAorUEFTUzogcmVzcG9uc2VTb3Vy
Y2Ugc2hvdWxkIGJlIFN5bWJvbChtZW1vcnktY2FjaGUpCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNl
LW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0yOS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2Ut
bWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTI5Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNw
b25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTI5Lmh0bWwK
QEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jYWNoZWQtc2NyaXB0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK1Rlc3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5kKCJM
b2FkQ29tcGxldGUiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5k
ZWJ1ZygpOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRl
KCJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIpOworCisgICAgZnVuY3Rpb24g
YWRkUmVsb2FkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9uLCBwYXR0ZXJu
LCBpZ25vcmVDYWNoZSwgc3RhdHVzQ29kZSwgcmVzcG9uc2VTb3VyY2V9KSB7CisgICAgICAgIHN1
aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAg
ICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LnJlbG9hZFBhZ2Uoe2lnbm9yZUNhY2hlLCByZXZhbGlkYXRlQWxsUmVzb3VyY2VzOiB0cnVl
fSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJMb2FkQ29tcGxl
dGUiKS50aGVuKChldmVudCkgPT4geworICAgICAgICAgICAgICAgICAgICBsZXQgcmVzb3VyY2Ug
PSBudWxsOworICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIFdJLm5ldHdvcmtN
YW5hZ2VyLm1haW5GcmFtZS5yZXNvdXJjZUNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChwYXR0ZXJuLnRlc3QoaXRlbS51cmwpKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzb3VyY2UgPSBpdGVtOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZmFpbCgiRmFpbGVkIHRvIGZpbmQgc3BlY2lmaWMgcmVzb3VyY2Uu
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocmVzb3VyY2UgaW5zdGFuY2VvZiBXSS5SZXNvdXJj
ZSwgIlJlc291cmNlIHNob3VsZCBleGlzdC4iKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5zdGF0dXNDb2RlLCBzdGF0dXNDb2RlLCBgc3Rh
dHVzQ29kZSBzaG91bGQgYmUgJHtzdGF0dXNDb2RlfWApOworICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnJlc3BvbnNlU291cmNlLCByZXNwb25z
ZVNvdXJjZSwgYHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSAke1N0cmluZyhyZXNwb25zZVNvdXJj
ZSl9YCk7CisgICAgICAgICAgICAgICAgfSkudGhlbihyZXNvbHZlLCByZWplY3QpOworICAgICAg
ICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBhZGRSZWxvYWRUZXN0Q2FzZSh7Cisg
ICAgICAgIG5hbWU6ICJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIsCisgICAg
ICAgIGRlc2NyaXB0aW9uOiAiTG9hZCBhIHJlc291cmNlIGZyb20gdGhlIG1lbW9yeSBjYWNoZSBi
eSByZWxvYWRpbmcgdGhpcyBwYWdlLiIsCisgICAgICAgIHBhdHRlcm46IC9jYWNoZWQtc2NyaXB0
XC5qcyQvLAorICAgICAgICBpZ25vcmVDYWNoZTogZmFsc2UsCisgICAgICAgIHJlc3BvbnNlU291
cmNlOiBXSS5SZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSwKKyAgICAgICAgc3Rh
dHVzQ29kZTogMzA0LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNo
KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxw
PlRlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuPC9wPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRh
dGUtZXhwaXJlZC1vbmx5LTMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJl
dmFsaWRhdGUtZXhwaXJlZC1vbmx5LTMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi4yMzAyYmY5ZWQwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291
cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0zLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDkgQEAKK1Rlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlD
YWNoZWAuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJj
ZS5NZW1vcnlDYWNoZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFJlc291cmNlLlJlc3BvbnNlU291
cmNlLk1lbW9yeUNhY2hlCitQQVNTOiBSZXNvdXJjZSBzaG91bGQgZXhpc3QuCitQQVNTOiBzdGF0
dXNDb2RlIHNob3VsZCBiZSAzMDQKK1BBU1M6IHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSBTeW1i
b2wobWVtb3J5LWNhY2hlKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2
YWxpZGF0ZS1leHBpcmVkLW9ubHktMy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFs
aWRhdGUtZXhwaXJlZC1vbmx5LTMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uM2VlNGUyZTcxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnkt
Y2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMy5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FjaGVkLXNjcmlwdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiTG9hZENvbXBsZXRlIik7CisKK2Z1
bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZGVidWcoKTsKKworICAgIGxldCBz
dWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUmVzb3VyY2UuUmVzcG9uc2VT
b3VyY2UuTWVtb3J5Q2FjaGUiKTsKKworICAgIGZ1bmN0aW9uIGFkZFJlbG9hZFRlc3RDYXNlKHtu
YW1lLCBkZXNjcmlwdGlvbiwgZXhwcmVzc2lvbiwgcGF0dGVybiwgaWdub3JlQ2FjaGUsIHN0YXR1
c0NvZGUsIHJlc3BvbnNlU291cmNlfSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Cisg
ICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwg
cmVqZWN0KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHtpZ25v
cmVDYWNoZSwgcmV2YWxpZGF0ZUFsbFJlc291cmNlczogdHJ1ZX0pOworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgiTG9hZENvbXBsZXRlIikudGhlbigoZXZlbnQpID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHJlc291cmNlID0gbnVsbDsKKyAgICAgICAgICAg
ICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUucmVz
b3VyY2VDb2xsZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGF0dGVybi50
ZXN0KGl0ZW0udXJsKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlID0g
aXRlbTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBp
ZiAoIXJlc291cmNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZh
aWwoIkZhaWxlZCB0byBmaW5kIHNwZWNpZmljIHJlc291cmNlLiIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmVqZWN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RUaGF0KHJlc291cmNlIGluc3RhbmNlb2YgV0kuUmVzb3VyY2UsICJSZXNvdXJjZSBzaG91bGQg
ZXhpc3QuIik7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwo
cmVzb3VyY2Uuc3RhdHVzQ29kZSwgc3RhdHVzQ29kZSwgYHN0YXR1c0NvZGUgc2hvdWxkIGJlICR7
c3RhdHVzQ29kZX1gKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RF
cXVhbChyZXNvdXJjZS5yZXNwb25zZVNvdXJjZSwgcmVzcG9uc2VTb3VyY2UsIGByZXNwb25zZVNv
dXJjZSBzaG91bGQgYmUgJHtTdHJpbmcocmVzcG9uc2VTb3VyY2UpfWApOworICAgICAgICAgICAg
ICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7
CisgICAgfQorCisgICAgYWRkUmVsb2FkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiUmVzb3Vy
Y2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkxv
YWQgYSByZXNvdXJjZSBmcm9tIHRoZSBtZW1vcnkgY2FjaGUgYnkgcmVsb2FkaW5nIHRoaXMgcGFn
ZS4iLAorICAgICAgICBwYXR0ZXJuOiAvY2FjaGVkLXNjcmlwdFwuanMkLywKKyAgICAgICAgaWdu
b3JlQ2FjaGU6IGZhbHNlLAorICAgICAgICByZXNwb25zZVNvdXJjZTogV0kuUmVzb3VyY2UuUmVz
cG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUsCisgICAgICAgIHN0YXR1c0NvZGU6IDMwNCwKKyAgICB9
KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0IGZvciBgUmVzb3VyY2Uu
UmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2Ut
cmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0zMC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jl
c291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9u
bHktMzAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4yMzAyYmY5ZWQwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1y
ZXZhbGlkYXRlLWV4cGlyZWQtb25seS0zMC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitU
ZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLgorCisKKz09IFJ1
bm5pbmcgdGVzdCBzdWl0ZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKKy0t
IFJ1bm5pbmcgdGVzdCBjYXNlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQor
UEFTUzogUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LgorUEFTUzogc3RhdHVzQ29kZSBzaG91bGQgYmUg
MzA0CitQQVNTOiByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgU3ltYm9sKG1lbW9yeS1jYWNoZSkK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9y
ZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1v
bmx5LTMwLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jl
c291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9u
bHktMzAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2VlNGUy
ZTcxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0
ZS1leHBpcmVkLW9ubHktMzAuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL2NhY2hlZC1zY3JpcHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorVGVzdFBhZ2UuZGlz
cGF0Y2hFdmVudFRvRnJvbnRlbmQoIkxvYWRDb21wbGV0ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkK
K3sKKyAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0
b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNh
Y2hlIik7CisKKyAgICBmdW5jdGlvbiBhZGRSZWxvYWRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRp
b24sIGV4cHJlc3Npb24sIHBhdHRlcm4sIGlnbm9yZUNhY2hlLCBzdGF0dXNDb2RlLCByZXNwb25z
ZVNvdXJjZX0pIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFt
ZSwgZGVzY3JpcHRpb24sCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJldmFs
aWRhdGVBbGxSZXNvdXJjZXM6IHRydWV9KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmF3YWl0RXZlbnQoIkxvYWRDb21wbGV0ZSIpLnRoZW4oKGV2ZW50KSA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGxldCByZXNvdXJjZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGZvciAo
bGV0IGl0ZW0gb2YgV0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1lLnJlc291cmNlQ29sbGVjdGlv
bikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChpdGVtLnVybCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSA9IGl0ZW07CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQgdG8g
ZmluZCBzcGVjaWZpYyByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlamVj
dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXNvdXJj
ZSBpbnN0YW5jZW9mIFdJLlJlc291cmNlLCAiUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LiIpOworICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1
c0NvZGUsIHN0YXR1c0NvZGUsIGBzdGF0dXNDb2RlIHNob3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7
CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uu
cmVzcG9uc2VTb3VyY2UsIHJlc3BvbnNlU291cmNlLCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJl
ICR7U3RyaW5nKHJlc3BvbnNlU291cmNlKX1gKTsKKyAgICAgICAgICAgICAgICB9KS50aGVuKHJl
c29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAg
IGFkZFJlbG9hZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlJlc291cmNlLlJlc3BvbnNlU291
cmNlLk1lbW9yeUNhY2hlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJMb2FkIGEgcmVzb3VyY2Ug
ZnJvbSB0aGUgbWVtb3J5IGNhY2hlIGJ5IHJlbG9hZGluZyB0aGlzIHBhZ2UuIiwKKyAgICAgICAg
cGF0dGVybjogL2NhY2hlZC1zY3JpcHRcLmpzJC8sCisgICAgICAgIGlnbm9yZUNhY2hlOiBmYWxz
ZSwKKyAgICAgICAgcmVzcG9uc2VTb3VyY2U6IFdJLlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1l
bW9yeUNhY2hlLAorICAgICAgICBzdGF0dXNDb2RlOiAzMDQsCisgICAgfSk7CisKKyAgICBzdWl0
ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNl
Lk1lbW9yeUNhY2hlYC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJj
ZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMzEtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25z
ZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTMxLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBp
cmVkLW9ubHktMzEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdCBmb3IgYFJlc291
cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3Vp
dGU6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCistLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKK1BBU1M6IFJlc291cmNl
IHNob3VsZCBleGlzdC4KK1BBU1M6IHN0YXR1c0NvZGUgc2hvdWxkIGJlIDMwNAorUEFTUzogcmVz
cG9uc2VTb3VyY2Ugc2hvdWxkIGJlIFN5bWJvbChtZW1vcnktY2FjaGUpCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9u
c2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0zMS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25z
ZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTMxLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNv
dXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5
LTMxLmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jYWNoZWQt
c2NyaXB0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1Rlc3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zy
b250ZW5kKCJMb2FkQ29tcGxldGUiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVj
dG9yVGVzdC5kZWJ1ZygpOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVB
c3luY1N1aXRlKCJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIpOworCisgICAg
ZnVuY3Rpb24gYWRkUmVsb2FkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9u
LCBwYXR0ZXJuLCBpZ25vcmVDYWNoZSwgc3RhdHVzQ29kZSwgcmVzcG9uc2VTb3VyY2V9KSB7Cisg
ICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9u
LAorICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoe2lnbm9yZUNhY2hlLCByZXZhbGlkYXRlQWxsUmVzb3Vy
Y2VzOiB0cnVlfSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJM
b2FkQ29tcGxldGUiKS50aGVuKChldmVudCkgPT4geworICAgICAgICAgICAgICAgICAgICBsZXQg
cmVzb3VyY2UgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIFdJ
Lm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5yZXNvdXJjZUNvbGxlY3Rpb24pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJuLnRlc3QoaXRlbS51cmwpKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSBpdGVtOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2UpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgiRmFpbGVkIHRvIGZpbmQgc3BlY2lmaWMg
cmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocmVzb3VyY2UgaW5zdGFuY2VvZiBX
SS5SZXNvdXJjZSwgIlJlc291cmNlIHNob3VsZCBleGlzdC4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5zdGF0dXNDb2RlLCBzdGF0dXND
b2RlLCBgc3RhdHVzQ29kZSBzaG91bGQgYmUgJHtzdGF0dXNDb2RlfWApOworICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnJlc3BvbnNlU291cmNl
LCByZXNwb25zZVNvdXJjZSwgYHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSAke1N0cmluZyhyZXNw
b25zZVNvdXJjZSl9YCk7CisgICAgICAgICAgICAgICAgfSkudGhlbihyZXNvbHZlLCByZWplY3Qp
OworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBhZGRSZWxvYWRUZXN0
Q2FzZSh7CisgICAgICAgIG5hbWU6ICJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNo
ZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiTG9hZCBhIHJlc291cmNlIGZyb20gdGhlIG1lbW9y
eSBjYWNoZSBieSByZWxvYWRpbmcgdGhpcyBwYWdlLiIsCisgICAgICAgIHBhdHRlcm46IC9jYWNo
ZWQtc2NyaXB0XC5qcyQvLAorICAgICAgICBpZ25vcmVDYWNoZTogZmFsc2UsCisgICAgICAgIHJl
c3BvbnNlU291cmNlOiBXSS5SZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSwKKyAg
ICAgICAgc3RhdHVzQ29kZTogMzA0LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2Vz
QW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KKzxwPlRlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAu
PC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hl
LXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTMyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9y
eS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0zMi1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIzMDJiZjllZDBlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1y
ZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTMyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNv
dXJjZS5NZW1vcnlDYWNoZWAuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBSZXNvdXJjZS5S
ZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFJlc291cmNl
LlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCitQQVNTOiBSZXNvdXJjZSBzaG91bGQgZXhpc3Qu
CitQQVNTOiBzdGF0dXNDb2RlIHNob3VsZCBiZSAzMDQKK1BBU1M6IHJlc3BvbnNlU291cmNlIHNo
b3VsZCBiZSBTeW1ib2wobWVtb3J5LWNhY2hlKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1v
cnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMzIuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9y
eS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0zMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZWU0ZTJlNzEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Ut
c291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0zMi5odG1sCkBAIC0w
LDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FjaGVkLXNjcmlwdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CitUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiTG9hZENv
bXBsZXRlIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZGVidWco
KTsKKworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUmVz
b3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiKTsKKworICAgIGZ1bmN0aW9uIGFkZFJl
bG9hZFRlc3RDYXNlKHtuYW1lLCBkZXNjcmlwdGlvbiwgZXhwcmVzc2lvbiwgcGF0dGVybiwgaWdu
b3JlQ2FjaGUsIHN0YXR1c0NvZGUsIHJlc3BvbnNlU291cmNlfSkgeworICAgICAgICBzdWl0ZS5h
ZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAg
IHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5y
ZWxvYWRQYWdlKHtpZ25vcmVDYWNoZSwgcmV2YWxpZGF0ZUFsbFJlc291cmNlczogdHJ1ZX0pOwor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgiTG9hZENvbXBsZXRlIiku
dGhlbigoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHJlc291cmNlID0gbnVs
bDsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBXSS5uZXR3b3JrTWFuYWdl
ci5tYWluRnJhbWUucmVzb3VyY2VDb2xsZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAocGF0dGVybi50ZXN0KGl0ZW0udXJsKSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc291cmNlID0gaXRlbTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICBpZiAoIXJlc291cmNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmZhaWwoIkZhaWxlZCB0byBmaW5kIHNwZWNpZmljIHJlc291cmNlLiIpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7CisgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RUaGF0KHJlc291cmNlIGluc3RhbmNlb2YgV0kuUmVzb3VyY2UsICJS
ZXNvdXJjZSBzaG91bGQgZXhpc3QuIik7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uuc3RhdHVzQ29kZSwgc3RhdHVzQ29kZSwgYHN0YXR1c0Nv
ZGUgc2hvdWxkIGJlICR7c3RhdHVzQ29kZX1gKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5yZXNwb25zZVNvdXJjZSwgcmVzcG9uc2VTb3Vy
Y2UsIGByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgJHtTdHJpbmcocmVzcG9uc2VTb3VyY2UpfWAp
OworICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgYWRkUmVsb2FkVGVzdENhc2UoeworICAgICAg
ICBuYW1lOiAiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiLAorICAgICAgICBk
ZXNjcmlwdGlvbjogIkxvYWQgYSByZXNvdXJjZSBmcm9tIHRoZSBtZW1vcnkgY2FjaGUgYnkgcmVs
b2FkaW5nIHRoaXMgcGFnZS4iLAorICAgICAgICBwYXR0ZXJuOiAvY2FjaGVkLXNjcmlwdFwuanMk
LywKKyAgICAgICAgaWdub3JlQ2FjaGU6IGZhbHNlLAorICAgICAgICByZXNwb25zZVNvdXJjZTog
V0kuUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUsCisgICAgICAgIHN0YXR1c0Nv
ZGU6IDMwNCwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOwor
fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0
IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLjwvcD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4
cGlyZWQtb25seS0zMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxp
ZGF0ZS1leHBpcmVkLW9ubHktMzMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi4yMzAyYmY5ZWQwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNl
LW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0zMy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw5IEBACitUZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2Fj
aGVgLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2Uu
TWVtb3J5Q2FjaGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJj
ZS5NZW1vcnlDYWNoZQorUEFTUzogUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LgorUEFTUzogc3RhdHVz
Q29kZSBzaG91bGQgYmUgMzA0CitQQVNTOiByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgU3ltYm9s
KG1lbW9yeS1jYWNoZSkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFs
aWRhdGUtZXhwaXJlZC1vbmx5LTMzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxp
ZGF0ZS1leHBpcmVkLW9ubHktMzMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uM2VlNGUyZTcxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnkt
Y2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMzMuaHRtbApAQCAtMCwwICsxLDU4IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NhY2hlZC1zY3JpcHQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQoIkxvYWRDb21wbGV0ZSIpOworCitm
dW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAgICBsZXQg
c3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJlc291cmNlLlJlc3BvbnNl
U291cmNlLk1lbW9yeUNhY2hlIik7CisKKyAgICBmdW5jdGlvbiBhZGRSZWxvYWRUZXN0Q2FzZSh7
bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb24sIHBhdHRlcm4sIGlnbm9yZUNhY2hlLCBzdGF0
dXNDb2RlLCByZXNwb25zZVNvdXJjZX0pIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2Uoewor
ICAgICAgICAgICAgbmFtZSwgZGVzY3JpcHRpb24sCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUs
IHJlamVjdCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSh7aWdu
b3JlQ2FjaGUsIHJldmFsaWRhdGVBbGxSZXNvdXJjZXM6IHRydWV9KTsKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoIkxvYWRDb21wbGV0ZSIpLnRoZW4oKGV2ZW50KSA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9IG51bGw7CisgICAgICAgICAg
ICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgV0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1lLnJl
c291cmNlQ29sbGVjdGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm4u
dGVzdChpdGVtLnVybCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSA9
IGl0ZW07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
aWYgKCFyZXNvdXJjZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5m
YWlsKCJGYWlsZWQgdG8gZmluZCBzcGVjaWZpYyByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJlamVjdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0VGhhdChyZXNvdXJjZSBpbnN0YW5jZW9mIFdJLlJlc291cmNlLCAiUmVzb3VyY2Ugc2hvdWxk
IGV4aXN0LiIpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFs
KHJlc291cmNlLnN0YXR1c0NvZGUsIHN0YXR1c0NvZGUsIGBzdGF0dXNDb2RlIHNob3VsZCBiZSAk
e3N0YXR1c0NvZGV9YCk7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0
RXF1YWwocmVzb3VyY2UucmVzcG9uc2VTb3VyY2UsIHJlc3BvbnNlU291cmNlLCBgcmVzcG9uc2VT
b3VyY2Ugc2hvdWxkIGJlICR7U3RyaW5nKHJlc3BvbnNlU291cmNlKX1gKTsKKyAgICAgICAgICAg
ICAgICB9KS50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0p
OworICAgIH0KKworICAgIGFkZFJlbG9hZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlJlc291
cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJM
b2FkIGEgcmVzb3VyY2UgZnJvbSB0aGUgbWVtb3J5IGNhY2hlIGJ5IHJlbG9hZGluZyB0aGlzIHBh
Z2UuIiwKKyAgICAgICAgcGF0dGVybjogL2NhY2hlZC1zY3JpcHRcLmpzJC8sCisgICAgICAgIGln
bm9yZUNhY2hlOiBmYWxzZSwKKyAgICAgICAgcmVzcG9uc2VTb3VyY2U6IFdJLlJlc291cmNlLlJl
c3BvbnNlU291cmNlLk1lbW9yeUNhY2hlLAorICAgICAgICBzdGF0dXNDb2RlOiAzMDQsCisgICAg
fSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdCBmb3IgYFJlc291cmNl
LlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNl
LXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMzQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9y
ZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1v
bmx5LTM0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uMjMwMmJmOWVkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUt
cmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMzQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAor
VGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC4KKworCis9PSBS
dW5uaW5nIHRlc3Qgc3VpdGU6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCist
LSBSdW5uaW5nIHRlc3QgY2FzZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUK
K1BBU1M6IFJlc291cmNlIHNob3VsZCBleGlzdC4KK1BBU1M6IHN0YXR1c0NvZGUgc2hvdWxkIGJl
IDMwNAorUEFTUzogcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlIFN5bWJvbChtZW1vcnktY2FjaGUp
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
cmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQt
b25seS0zNC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9y
ZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1v
bmx5LTM0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNlZTRl
MmU3MTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRh
dGUtZXhwaXJlZC1vbmx5LTM0Lmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9jYWNoZWQtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1Rlc3RQYWdlLmRp
c3BhdGNoRXZlbnRUb0Zyb250ZW5kKCJMb2FkQ29tcGxldGUiKTsKKworZnVuY3Rpb24gdGVzdCgp
Cit7CisgICAgSW5zcGVjdG9yVGVzdC5kZWJ1ZygpOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVj
dG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlD
YWNoZSIpOworCisgICAgZnVuY3Rpb24gYWRkUmVsb2FkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0
aW9uLCBleHByZXNzaW9uLCBwYXR0ZXJuLCBpZ25vcmVDYWNoZSwgc3RhdHVzQ29kZSwgcmVzcG9u
c2VTb3VyY2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5h
bWUsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoe2lnbm9yZUNhY2hlLCByZXZh
bGlkYXRlQWxsUmVzb3VyY2VzOiB0cnVlfSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hd2FpdEV2ZW50KCJMb2FkQ29tcGxldGUiKS50aGVuKChldmVudCkgPT4geworICAgICAgICAg
ICAgICAgICAgICBsZXQgcmVzb3VyY2UgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBmb3Ig
KGxldCBpdGVtIG9mIFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5yZXNvdXJjZUNvbGxlY3Rp
b24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJuLnRlc3QoaXRlbS51cmwp
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSBpdGVtOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2Up
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgiRmFpbGVkIHRv
IGZpbmQgc3BlY2lmaWMgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZWpl
Y3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocmVzb3Vy
Y2UgaW5zdGFuY2VvZiBXSS5SZXNvdXJjZSwgIlJlc291cmNlIHNob3VsZCBleGlzdC4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5zdGF0
dXNDb2RlLCBzdGF0dXNDb2RlLCBgc3RhdHVzQ29kZSBzaG91bGQgYmUgJHtzdGF0dXNDb2RlfWAp
OworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNl
LnJlc3BvbnNlU291cmNlLCByZXNwb25zZVNvdXJjZSwgYHJlc3BvbnNlU291cmNlIHNob3VsZCBi
ZSAke1N0cmluZyhyZXNwb25zZVNvdXJjZSl9YCk7CisgICAgICAgICAgICAgICAgfSkudGhlbihy
ZXNvbHZlLCByZWplY3QpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAg
ICBhZGRSZWxvYWRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJSZXNvdXJjZS5SZXNwb25zZVNv
dXJjZS5NZW1vcnlDYWNoZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiTG9hZCBhIHJlc291cmNl
IGZyb20gdGhlIG1lbW9yeSBjYWNoZSBieSByZWxvYWRpbmcgdGhpcyBwYWdlLiIsCisgICAgICAg
IHBhdHRlcm46IC9jYWNoZWQtc2NyaXB0XC5qcyQvLAorICAgICAgICBpZ25vcmVDYWNoZTogZmFs
c2UsCisgICAgICAgIHJlc3BvbnNlU291cmNlOiBXSS5SZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5N
ZW1vcnlDYWNoZSwKKyAgICAgICAgc3RhdHVzQ29kZTogMzA0LAorICAgIH0pOworCisgICAgc3Vp
dGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJj
ZS5NZW1vcnlDYWNoZWAuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3Vy
Y2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTM1LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9u
c2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0zNS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIzMDJiZjllZDBl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhw
aXJlZC1vbmx5LTM1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3QgZm9yIGBSZXNv
dXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuCisKKworPT0gUnVubmluZyB0ZXN0IHN1
aXRlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorLS0gUnVubmluZyB0ZXN0
IGNhc2U6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCitQQVNTOiBSZXNvdXJj
ZSBzaG91bGQgZXhpc3QuCitQQVNTOiBzdGF0dXNDb2RlIHNob3VsZCBiZSAzMDQKK1BBU1M6IHJl
c3BvbnNlU291cmNlIHNob3VsZCBiZSBTeW1ib2wobWVtb3J5LWNhY2hlKQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3Bv
bnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMzUuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9u
c2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0zNS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZWU0ZTJlNzEzYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVz
b3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25s
eS0zNS5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FjaGVk
LXNjcmlwdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9G
cm9udGVuZCgiTG9hZENvbXBsZXRlIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3Bl
Y3RvclRlc3QuZGVidWcoKTsKKworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRl
QXN5bmNTdWl0ZSgiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiKTsKKworICAg
IGZ1bmN0aW9uIGFkZFJlbG9hZFRlc3RDYXNlKHtuYW1lLCBkZXNjcmlwdGlvbiwgZXhwcmVzc2lv
biwgcGF0dGVybiwgaWdub3JlQ2FjaGUsIHN0YXR1c0NvZGUsIHJlc3BvbnNlU291cmNlfSkgewor
ICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlv
biwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHtpZ25vcmVDYWNoZSwgcmV2YWxpZGF0ZUFsbFJlc291
cmNlczogdHJ1ZX0pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgi
TG9hZENvbXBsZXRlIikudGhlbigoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0
IHJlc291cmNlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBX
SS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUucmVzb3VyY2VDb2xsZWN0aW9uKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAocGF0dGVybi50ZXN0KGl0ZW0udXJsKSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc291cmNlID0gaXRlbTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc291cmNlKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZhaWwoIkZhaWxlZCB0byBmaW5kIHNwZWNpZmlj
IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHJlc291cmNlIGluc3RhbmNlb2Yg
V0kuUmVzb3VyY2UsICJSZXNvdXJjZSBzaG91bGQgZXhpc3QuIik7CisgICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uuc3RhdHVzQ29kZSwgc3RhdHVz
Q29kZSwgYHN0YXR1c0NvZGUgc2hvdWxkIGJlICR7c3RhdHVzQ29kZX1gKTsKKyAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5yZXNwb25zZVNvdXJj
ZSwgcmVzcG9uc2VTb3VyY2UsIGByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgJHtTdHJpbmcocmVz
cG9uc2VTb3VyY2UpfWApOworICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgYWRkUmVsb2FkVGVz
dENhc2UoeworICAgICAgICBuYW1lOiAiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2Fj
aGUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkxvYWQgYSByZXNvdXJjZSBmcm9tIHRoZSBtZW1v
cnkgY2FjaGUgYnkgcmVsb2FkaW5nIHRoaXMgcGFnZS4iLAorICAgICAgICBwYXR0ZXJuOiAvY2Fj
aGVkLXNjcmlwdFwuanMkLywKKyAgICAgICAgaWdub3JlQ2FjaGU6IGZhbHNlLAorICAgICAgICBy
ZXNwb25zZVNvdXJjZTogV0kuUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUsCisg
ICAgICAgIHN0YXR1c0NvZGU6IDMwNCwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNl
c0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Cis8cD5UZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVg
LjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNo
ZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0zNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1v
cnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMzYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzAyYmY5ZWQwZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2Ut
cmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0zNi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VT
b3VyY2UuTWVtb3J5Q2FjaGVgLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUmVzb3VyY2Uu
UmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBSZXNvdXJj
ZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorUEFTUzogUmVzb3VyY2Ugc2hvdWxkIGV4aXN0
LgorUEFTUzogc3RhdHVzQ29kZSBzaG91bGQgYmUgMzA0CitQQVNTOiByZXNwb25zZVNvdXJjZSBz
aG91bGQgYmUgU3ltYm9sKG1lbW9yeS1jYWNoZSkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVt
b3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTM2Lmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1v
cnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMzYuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2VlNGUyZTcxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNl
LXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMzYuaHRtbApAQCAt
MCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NhY2hlZC1zY3JpcHQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQoIkxvYWRD
b21wbGV0ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmRlYnVn
KCk7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJl
c291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIik7CisKKyAgICBmdW5jdGlvbiBhZGRS
ZWxvYWRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb24sIHBhdHRlcm4sIGln
bm9yZUNhY2hlLCBzdGF0dXNDb2RlLCByZXNwb25zZVNvdXJjZX0pIHsKKyAgICAgICAgc3VpdGUu
YWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwgZGVzY3JpcHRpb24sCisgICAgICAgICAg
ICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
cmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRhdGVBbGxSZXNvdXJjZXM6IHRydWV9KTsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoIkxvYWRDb21wbGV0ZSIp
LnRoZW4oKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9IG51
bGw7CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgV0kubmV0d29ya01hbmFn
ZXIubWFpbkZyYW1lLnJlc291cmNlQ29sbGVjdGlvbikgeworICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKHBhdHRlcm4udGVzdChpdGVtLnVybCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXNvdXJjZSA9IGl0ZW07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQgdG8gZmluZCBzcGVjaWZpYyByZXNvdXJjZS4iKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgpOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXNvdXJjZSBpbnN0YW5jZW9mIFdJLlJlc291cmNlLCAi
UmVzb3VyY2Ugc2hvdWxkIGV4aXN0LiIpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1c0NvZGUsIHN0YXR1c0NvZGUsIGBzdGF0dXND
b2RlIHNob3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7CisgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2UucmVzcG9uc2VTb3VyY2UsIHJlc3BvbnNlU291
cmNlLCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlICR7U3RyaW5nKHJlc3BvbnNlU291cmNlKX1g
KTsKKyAgICAgICAgICAgICAgICB9KS50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIGFkZFJlbG9hZFRlc3RDYXNlKHsKKyAgICAg
ICAgbmFtZTogIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIiwKKyAgICAgICAg
ZGVzY3JpcHRpb246ICJMb2FkIGEgcmVzb3VyY2UgZnJvbSB0aGUgbWVtb3J5IGNhY2hlIGJ5IHJl
bG9hZGluZyB0aGlzIHBhZ2UuIiwKKyAgICAgICAgcGF0dGVybjogL2NhY2hlZC1zY3JpcHRcLmpz
JC8sCisgICAgICAgIGlnbm9yZUNhY2hlOiBmYWxzZSwKKyAgICAgICAgcmVzcG9uc2VTb3VyY2U6
IFdJLlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlLAorICAgICAgICBzdGF0dXND
b2RlOiAzMDQsCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsK
K30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVz
dCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC48L3A+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1l
eHBpcmVkLW9ubHktMzctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFs
aWRhdGUtZXhwaXJlZC1vbmx5LTM3LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJj
ZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMzctZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsOSBAQAorVGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNh
Y2hlYC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFJlc291cmNlLlJlc3BvbnNlU291cmNl
Lk1lbW9yeUNhY2hlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUmVzb3VyY2UuUmVzcG9uc2VTb3Vy
Y2UuTWVtb3J5Q2FjaGUKK1BBU1M6IFJlc291cmNlIHNob3VsZCBleGlzdC4KK1BBU1M6IHN0YXR1
c0NvZGUgc2hvdWxkIGJlIDMwNAorUEFTUzogcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlIFN5bWJv
bChtZW1vcnktY2FjaGUpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZh
bGlkYXRlLWV4cGlyZWQtb25seS0zNy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFs
aWRhdGUtZXhwaXJlZC1vbmx5LTM3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5
LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTM3Lmh0bWwKQEAgLTAsMCArMSw1OCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9jYWNoZWQtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK1Rlc3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5kKCJMb2FkQ29tcGxldGUiKTsKKwor
ZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5kZWJ1ZygpOworCisgICAgbGV0
IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJSZXNvdXJjZS5SZXNwb25z
ZVNvdXJjZS5NZW1vcnlDYWNoZSIpOworCisgICAgZnVuY3Rpb24gYWRkUmVsb2FkVGVzdENhc2Uo
e25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9uLCBwYXR0ZXJuLCBpZ25vcmVDYWNoZSwgc3Rh
dHVzQ29kZSwgcmVzcG9uc2VTb3VyY2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsK
KyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgdGVzdChyZXNvbHZl
LCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoe2ln
bm9yZUNhY2hlLCByZXZhbGlkYXRlQWxsUmVzb3VyY2VzOiB0cnVlfSk7CisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJMb2FkQ29tcGxldGUiKS50aGVuKChldmVudCkg
PT4geworICAgICAgICAgICAgICAgICAgICBsZXQgcmVzb3VyY2UgPSBudWxsOworICAgICAgICAg
ICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5y
ZXNvdXJjZUNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJu
LnRlc3QoaXRlbS51cmwpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2Ug
PSBpdGVtOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IGlmICghcmVzb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZmFpbCgiRmFpbGVkIHRvIGZpbmQgc3BlY2lmaWMgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICByZWplY3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdFRoYXQocmVzb3VyY2UgaW5zdGFuY2VvZiBXSS5SZXNvdXJjZSwgIlJlc291cmNlIHNob3Vs
ZCBleGlzdC4iKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVh
bChyZXNvdXJjZS5zdGF0dXNDb2RlLCBzdGF0dXNDb2RlLCBgc3RhdHVzQ29kZSBzaG91bGQgYmUg
JHtzdGF0dXNDb2RlfWApOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dEVxdWFsKHJlc291cmNlLnJlc3BvbnNlU291cmNlLCByZXNwb25zZVNvdXJjZSwgYHJlc3BvbnNl
U291cmNlIHNob3VsZCBiZSAke1N0cmluZyhyZXNwb25zZVNvdXJjZSl9YCk7CisgICAgICAgICAg
ICAgICAgfSkudGhlbihyZXNvbHZlLCByZWplY3QpOworICAgICAgICAgICAgfQorICAgICAgICB9
KTsKKyAgICB9CisKKyAgICBhZGRSZWxvYWRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJSZXNv
dXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAi
TG9hZCBhIHJlc291cmNlIGZyb20gdGhlIG1lbW9yeSBjYWNoZSBieSByZWxvYWRpbmcgdGhpcyBw
YWdlLiIsCisgICAgICAgIHBhdHRlcm46IC9jYWNoZWQtc2NyaXB0XC5qcyQvLAorICAgICAgICBp
Z25vcmVDYWNoZTogZmFsc2UsCisgICAgICAgIHJlc3BvbnNlU291cmNlOiBXSS5SZXNvdXJjZS5S
ZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSwKKyAgICAgICAgc3RhdHVzQ29kZTogMzA0LAorICAg
IH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9yIGBSZXNvdXJj
ZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJj
ZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTM4
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
cmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQt
b25seS0zOC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjIzMDJiZjllZDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hl
LXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTM4LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAK
K1Rlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuCisKKworPT0g
UnVubmluZyB0ZXN0IHN1aXRlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQor
LS0gUnVubmluZyB0ZXN0IGNhc2U6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hl
CitQQVNTOiBSZXNvdXJjZSBzaG91bGQgZXhpc3QuCitQQVNTOiBzdGF0dXNDb2RlIHNob3VsZCBi
ZSAzMDQKK1BBU1M6IHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSBTeW1ib2wobWVtb3J5LWNhY2hl
KQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVk
LW9ubHktMzguaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
cmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQt
b25seS0zOC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZWU0
ZTJlNzEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlk
YXRlLWV4cGlyZWQtb25seS0zOC5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvY2FjaGVkLXNjcmlwdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitUZXN0UGFnZS5k
aXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiTG9hZENvbXBsZXRlIik7CisKK2Z1bmN0aW9uIHRlc3Qo
KQoreworICAgIEluc3BlY3RvclRlc3QuZGVidWcoKTsKKworICAgIGxldCBzdWl0ZSA9IEluc3Bl
Y3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5
Q2FjaGUiKTsKKworICAgIGZ1bmN0aW9uIGFkZFJlbG9hZFRlc3RDYXNlKHtuYW1lLCBkZXNjcmlw
dGlvbiwgZXhwcmVzc2lvbiwgcGF0dGVybiwgaWdub3JlQ2FjaGUsIHN0YXR1c0NvZGUsIHJlc3Bv
bnNlU291cmNlfSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBu
YW1lLCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Cisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHtpZ25vcmVDYWNoZSwgcmV2
YWxpZGF0ZUFsbFJlc291cmNlczogdHJ1ZX0pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXdhaXRFdmVudCgiTG9hZENvbXBsZXRlIikudGhlbigoZXZlbnQpID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgbGV0IHJlc291cmNlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZm9y
IChsZXQgaXRlbSBvZiBXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUucmVzb3VyY2VDb2xsZWN0
aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGF0dGVybi50ZXN0KGl0ZW0udXJs
KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlID0gaXRlbTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc291cmNl
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZhaWwoIkZhaWxlZCB0
byBmaW5kIHNwZWNpZmljIHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVq
ZWN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHJlc291
cmNlIGluc3RhbmNlb2YgV0kuUmVzb3VyY2UsICJSZXNvdXJjZSBzaG91bGQgZXhpc3QuIik7Cisg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uuc3Rh
dHVzQ29kZSwgc3RhdHVzQ29kZSwgYHN0YXR1c0NvZGUgc2hvdWxkIGJlICR7c3RhdHVzQ29kZX1g
KTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJj
ZS5yZXNwb25zZVNvdXJjZSwgcmVzcG9uc2VTb3VyY2UsIGByZXNwb25zZVNvdXJjZSBzaG91bGQg
YmUgJHtTdHJpbmcocmVzcG9uc2VTb3VyY2UpfWApOworICAgICAgICAgICAgICAgIH0pLnRoZW4o
cmVzb2x2ZSwgcmVqZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisg
ICAgYWRkUmVsb2FkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiUmVzb3VyY2UuUmVzcG9uc2VT
b3VyY2UuTWVtb3J5Q2FjaGUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkxvYWQgYSByZXNvdXJj
ZSBmcm9tIHRoZSBtZW1vcnkgY2FjaGUgYnkgcmVsb2FkaW5nIHRoaXMgcGFnZS4iLAorICAgICAg
ICBwYXR0ZXJuOiAvY2FjaGVkLXNjcmlwdFwuanMkLywKKyAgICAgICAgaWdub3JlQ2FjaGU6IGZh
bHNlLAorICAgICAgICByZXNwb25zZVNvdXJjZTogV0kuUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2Uu
TWVtb3J5Q2FjaGUsCisgICAgICAgIHN0YXR1c0NvZGU6IDMwNCwKKyAgICB9KTsKKworICAgIHN1
aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3Vy
Y2UuTWVtb3J5Q2FjaGVgLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291
cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS0zOS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3Bv
bnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMzktZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzAyYmY5ZWQw
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4
cGlyZWQtb25seS0zOS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0IGZvciBgUmVz
b3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLgorCisKKz09IFJ1bm5pbmcgdGVzdCBz
dWl0ZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKKy0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorUEFTUzogUmVzb3Vy
Y2Ugc2hvdWxkIGV4aXN0LgorUEFTUzogc3RhdHVzQ29kZSBzaG91bGQgYmUgMzA0CitQQVNTOiBy
ZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgU3ltYm9sKG1lbW9yeS1jYWNoZSkKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNw
b25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTM5Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3Bv
bnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktMzkuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2VlNGUyZTcxM2IKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jl
c291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9u
bHktMzkuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NhY2hl
ZC1zY3JpcHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRv
RnJvbnRlbmQoIkxvYWRDb21wbGV0ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNw
ZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0
ZUFzeW5jU3VpdGUoIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIik7CisKKyAg
ICBmdW5jdGlvbiBhZGRSZWxvYWRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Np
b24sIHBhdHRlcm4sIGlnbm9yZUNhY2hlLCBzdGF0dXNDb2RlLCByZXNwb25zZVNvdXJjZX0pIHsK
KyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwgZGVzY3JpcHRp
b24sCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRhdGVBbGxSZXNv
dXJjZXM6IHRydWV9KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQo
IkxvYWRDb21wbGV0ZSIpLnRoZW4oKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGxl
dCByZXNvdXJjZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2Yg
V0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1lLnJlc291cmNlQ29sbGVjdGlvbikgeworICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChpdGVtLnVybCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSA9IGl0ZW07CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQgdG8gZmluZCBzcGVjaWZp
YyByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgpOworICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXNvdXJjZSBpbnN0YW5jZW9m
IFdJLlJlc291cmNlLCAiUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LiIpOworICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1c0NvZGUsIHN0YXR1
c0NvZGUsIGBzdGF0dXNDb2RlIHNob3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7CisgICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2UucmVzcG9uc2VTb3Vy
Y2UsIHJlc3BvbnNlU291cmNlLCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlICR7U3RyaW5nKHJl
c3BvbnNlU291cmNlKX1gKTsKKyAgICAgICAgICAgICAgICB9KS50aGVuKHJlc29sdmUsIHJlamVj
dCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIGFkZFJlbG9hZFRl
c3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNh
Y2hlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJMb2FkIGEgcmVzb3VyY2UgZnJvbSB0aGUgbWVt
b3J5IGNhY2hlIGJ5IHJlbG9hZGluZyB0aGlzIHBhZ2UuIiwKKyAgICAgICAgcGF0dGVybjogL2Nh
Y2hlZC1zY3JpcHRcLmpzJC8sCisgICAgICAgIGlnbm9yZUNhY2hlOiBmYWxzZSwKKyAgICAgICAg
cmVzcG9uc2VTb3VyY2U6IFdJLlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlLAor
ICAgICAgICBzdGF0dXNDb2RlOiAzMDQsCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2Fz
ZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgorPHA+VGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hl
YC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2Fj
aGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1v
cnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIzMDJiZjllZDBlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1y
ZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291
cmNlLk1lbW9yeUNhY2hlYC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFJlc291cmNlLlJl
c3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUmVzb3VyY2Uu
UmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKK1BBU1M6IFJlc291cmNlIHNob3VsZCBleGlzdC4K
K1BBU1M6IHN0YXR1c0NvZGUgc2hvdWxkIGJlIDMwNAorUEFTUzogcmVzcG9uc2VTb3VyY2Ugc2hv
dWxkIGJlIFN5bWJvbChtZW1vcnktY2FjaGUpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9y
eS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS00Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnkt
Y2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi4zZWU0ZTJlNzEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291
cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS00Lmh0bWwKQEAgLTAsMCAr
MSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jYWNoZWQtc2NyaXB0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK1Rlc3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5kKCJMb2FkQ29tcGxl
dGUiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5kZWJ1ZygpOwor
CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJSZXNvdXJj
ZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIpOworCisgICAgZnVuY3Rpb24gYWRkUmVsb2Fk
VGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9uLCBwYXR0ZXJuLCBpZ25vcmVD
YWNoZSwgc3RhdHVzQ29kZSwgcmVzcG9uc2VTb3VyY2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRl
c3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgdGVz
dChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9h
ZFBhZ2Uoe2lnbm9yZUNhY2hlLCByZXZhbGlkYXRlQWxsUmVzb3VyY2VzOiB0cnVlfSk7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJMb2FkQ29tcGxldGUiKS50aGVu
KChldmVudCkgPT4geworICAgICAgICAgICAgICAgICAgICBsZXQgcmVzb3VyY2UgPSBudWxsOwor
ICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIFdJLm5ldHdvcmtNYW5hZ2VyLm1h
aW5GcmFtZS5yZXNvdXJjZUNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChwYXR0ZXJuLnRlc3QoaXRlbS51cmwpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzb3VyY2UgPSBpdGVtOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIGlmICghcmVzb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZmFpbCgiRmFpbGVkIHRvIGZpbmQgc3BlY2lmaWMgcmVzb3VyY2UuIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdFRoYXQocmVzb3VyY2UgaW5zdGFuY2VvZiBXSS5SZXNvdXJjZSwgIlJlc291
cmNlIHNob3VsZCBleGlzdC4iKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFcXVhbChyZXNvdXJjZS5zdGF0dXNDb2RlLCBzdGF0dXNDb2RlLCBgc3RhdHVzQ29kZSBz
aG91bGQgYmUgJHtzdGF0dXNDb2RlfWApOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnJlc3BvbnNlU291cmNlLCByZXNwb25zZVNvdXJjZSwg
YHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSAke1N0cmluZyhyZXNwb25zZVNvdXJjZSl9YCk7Cisg
ICAgICAgICAgICAgICAgfSkudGhlbihyZXNvbHZlLCByZWplY3QpOworICAgICAgICAgICAgfQor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBhZGRSZWxvYWRUZXN0Q2FzZSh7CisgICAgICAgIG5h
bWU6ICJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIsCisgICAgICAgIGRlc2Ny
aXB0aW9uOiAiTG9hZCBhIHJlc291cmNlIGZyb20gdGhlIG1lbW9yeSBjYWNoZSBieSByZWxvYWRp
bmcgdGhpcyBwYWdlLiIsCisgICAgICAgIHBhdHRlcm46IC9jYWNoZWQtc2NyaXB0XC5qcyQvLAor
ICAgICAgICBpZ25vcmVDYWNoZTogZmFsc2UsCisgICAgICAgIHJlc3BvbnNlU291cmNlOiBXSS5S
ZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSwKKyAgICAgICAgc3RhdHVzQ29kZTog
MzA0LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9y
IGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuPC9wPgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJl
ZC1vbmx5LTQwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRl
LWV4cGlyZWQtb25seS00MC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjIzMDJiZjllZDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVt
b3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTQwLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDkgQEAKK1Rlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAu
CisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1v
cnlDYWNoZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1l
bW9yeUNhY2hlCitQQVNTOiBSZXNvdXJjZSBzaG91bGQgZXhpc3QuCitQQVNTOiBzdGF0dXNDb2Rl
IHNob3VsZCBiZSAzMDQKK1BBU1M6IHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSBTeW1ib2wobWVt
b3J5LWNhY2hlKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0
ZS1leHBpcmVkLW9ubHktNDAuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRl
LWV4cGlyZWQtb25seS00MC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi4zZWU0ZTJlNzEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNo
ZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS00MC5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvY2FjaGVkLXNjcmlwdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitU
ZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiTG9hZENvbXBsZXRlIik7CisKK2Z1bmN0
aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZGVidWcoKTsKKworICAgIGxldCBzdWl0
ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUmVzb3VyY2UuUmVzcG9uc2VTb3Vy
Y2UuTWVtb3J5Q2FjaGUiKTsKKworICAgIGZ1bmN0aW9uIGFkZFJlbG9hZFRlc3RDYXNlKHtuYW1l
LCBkZXNjcmlwdGlvbiwgZXhwcmVzc2lvbiwgcGF0dGVybiwgaWdub3JlQ2FjaGUsIHN0YXR1c0Nv
ZGUsIHJlc3BvbnNlU291cmNlfSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAg
ICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVq
ZWN0KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHtpZ25vcmVD
YWNoZSwgcmV2YWxpZGF0ZUFsbFJlc291cmNlczogdHJ1ZX0pOworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXdhaXRFdmVudCgiTG9hZENvbXBsZXRlIikudGhlbigoZXZlbnQpID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgbGV0IHJlc291cmNlID0gbnVsbDsKKyAgICAgICAgICAgICAg
ICAgICAgZm9yIChsZXQgaXRlbSBvZiBXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUucmVzb3Vy
Y2VDb2xsZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGF0dGVybi50ZXN0
KGl0ZW0udXJsKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlID0gaXRl
bTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAo
IXJlc291cmNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZhaWwo
IkZhaWxlZCB0byBmaW5kIHNwZWNpZmljIHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgcmVqZWN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RU
aGF0KHJlc291cmNlIGluc3RhbmNlb2YgV0kuUmVzb3VyY2UsICJSZXNvdXJjZSBzaG91bGQgZXhp
c3QuIik7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVz
b3VyY2Uuc3RhdHVzQ29kZSwgc3RhdHVzQ29kZSwgYHN0YXR1c0NvZGUgc2hvdWxkIGJlICR7c3Rh
dHVzQ29kZX1gKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVh
bChyZXNvdXJjZS5yZXNwb25zZVNvdXJjZSwgcmVzcG9uc2VTb3VyY2UsIGByZXNwb25zZVNvdXJj
ZSBzaG91bGQgYmUgJHtTdHJpbmcocmVzcG9uc2VTb3VyY2UpfWApOworICAgICAgICAgICAgICAg
IH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7Cisg
ICAgfQorCisgICAgYWRkUmVsb2FkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiUmVzb3VyY2Uu
UmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkxvYWQg
YSByZXNvdXJjZSBmcm9tIHRoZSBtZW1vcnkgY2FjaGUgYnkgcmVsb2FkaW5nIHRoaXMgcGFnZS4i
LAorICAgICAgICBwYXR0ZXJuOiAvY2FjaGVkLXNjcmlwdFwuanMkLywKKyAgICAgICAgaWdub3Jl
Q2FjaGU6IGZhbHNlLAorICAgICAgICByZXNwb25zZVNvdXJjZTogV0kuUmVzb3VyY2UuUmVzcG9u
c2VTb3VyY2UuTWVtb3J5Q2FjaGUsCisgICAgICAgIHN0YXR1c0NvZGU6IDMwNCwKKyAgICB9KTsK
KworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0IGZvciBgUmVzb3VyY2UuUmVz
cG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVz
cG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS00MS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291
cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHkt
NDEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4y
MzAyYmY5ZWQwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZh
bGlkYXRlLWV4cGlyZWQtb25seS00MS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0
IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLgorCisKKz09IFJ1bm5p
bmcgdGVzdCBzdWl0ZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorUEFT
UzogUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LgorUEFTUzogc3RhdHVzQ29kZSBzaG91bGQgYmUgMzA0
CitQQVNTOiByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgU3ltYm9sKG1lbW9yeS1jYWNoZSkKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNv
dXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5
LTQxLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291
cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHkt
NDEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2VlNGUyZTcx
M2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1l
eHBpcmVkLW9ubHktNDEuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2NhY2hlZC1zY3JpcHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorVGVzdFBhZ2UuZGlzcGF0
Y2hFdmVudFRvRnJvbnRlbmQoIkxvYWRDb21wbGV0ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sK
KyAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JU
ZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hl
Iik7CisKKyAgICBmdW5jdGlvbiBhZGRSZWxvYWRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24s
IGV4cHJlc3Npb24sIHBhdHRlcm4sIGlnbm9yZUNhY2hlLCBzdGF0dXNDb2RlLCByZXNwb25zZVNv
dXJjZX0pIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwg
ZGVzY3JpcHRpb24sCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRh
dGVBbGxSZXNvdXJjZXM6IHRydWV9KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3
YWl0RXZlbnQoIkxvYWRDb21wbGV0ZSIpLnRoZW4oKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGxldCByZXNvdXJjZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0
IGl0ZW0gb2YgV0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1lLnJlc291cmNlQ29sbGVjdGlvbikg
eworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChpdGVtLnVybCkpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSA9IGl0ZW07CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQgdG8gZmlu
ZCBzcGVjaWZpYyByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgp
OworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXNvdXJjZSBp
bnN0YW5jZW9mIFdJLlJlc291cmNlLCAiUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LiIpOworICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1c0Nv
ZGUsIHN0YXR1c0NvZGUsIGBzdGF0dXNDb2RlIHNob3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7Cisg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2UucmVz
cG9uc2VTb3VyY2UsIHJlc3BvbnNlU291cmNlLCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlICR7
U3RyaW5nKHJlc3BvbnNlU291cmNlKX1gKTsKKyAgICAgICAgICAgICAgICB9KS50aGVuKHJlc29s
dmUsIHJlamVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIGFk
ZFJlbG9hZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlJlc291cmNlLlJlc3BvbnNlU291cmNl
Lk1lbW9yeUNhY2hlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJMb2FkIGEgcmVzb3VyY2UgZnJv
bSB0aGUgbWVtb3J5IGNhY2hlIGJ5IHJlbG9hZGluZyB0aGlzIHBhZ2UuIiwKKyAgICAgICAgcGF0
dGVybjogL2NhY2hlZC1zY3JpcHRcLmpzJC8sCisgICAgICAgIGlnbm9yZUNhY2hlOiBmYWxzZSwK
KyAgICAgICAgcmVzcG9uc2VTb3VyY2U6IFdJLlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9y
eUNhY2hlLAorICAgICAgICBzdGF0dXNDb2RlOiAzMDQsCisgICAgfSk7CisKKyAgICBzdWl0ZS5y
dW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1l
bW9yeUNhY2hlYC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1t
ZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNDItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1z
b3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTQyLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVk
LW9ubHktNDItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdCBmb3IgYFJlc291cmNl
LlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6
IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCistLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKK1BBU1M6IFJlc291cmNlIHNo
b3VsZCBleGlzdC4KK1BBU1M6IHN0YXR1c0NvZGUgc2hvdWxkIGJlIDMwNAorUEFTUzogcmVzcG9u
c2VTb3VyY2Ugc2hvdWxkIGJlIFN5bWJvbChtZW1vcnktY2FjaGUpCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Ut
c291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS00Mi5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1z
b3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTQyLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJj
ZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTQy
Lmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jYWNoZWQtc2Ny
aXB0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1Rlc3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250
ZW5kKCJMb2FkQ29tcGxldGUiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9y
VGVzdC5kZWJ1ZygpOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3lu
Y1N1aXRlKCJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIpOworCisgICAgZnVu
Y3Rpb24gYWRkUmVsb2FkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9uLCBw
YXR0ZXJuLCBpZ25vcmVDYWNoZSwgc3RhdHVzQ29kZSwgcmVzcG9uc2VTb3VyY2V9KSB7CisgICAg
ICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAor
ICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoe2lnbm9yZUNhY2hlLCByZXZhbGlkYXRlQWxsUmVzb3VyY2Vz
OiB0cnVlfSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJMb2Fk
Q29tcGxldGUiKS50aGVuKChldmVudCkgPT4geworICAgICAgICAgICAgICAgICAgICBsZXQgcmVz
b3VyY2UgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIFdJLm5l
dHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5yZXNvdXJjZUNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChwYXR0ZXJuLnRlc3QoaXRlbS51cmwpKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVzb3VyY2UgPSBpdGVtOworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2UpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgiRmFpbGVkIHRvIGZpbmQgc3BlY2lmaWMgcmVz
b3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocmVzb3VyY2UgaW5zdGFuY2VvZiBXSS5S
ZXNvdXJjZSwgIlJlc291cmNlIHNob3VsZCBleGlzdC4iKTsKKyAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5zdGF0dXNDb2RlLCBzdGF0dXNDb2Rl
LCBgc3RhdHVzQ29kZSBzaG91bGQgYmUgJHtzdGF0dXNDb2RlfWApOworICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnJlc3BvbnNlU291cmNlLCBy
ZXNwb25zZVNvdXJjZSwgYHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSAke1N0cmluZyhyZXNwb25z
ZVNvdXJjZSl9YCk7CisgICAgICAgICAgICAgICAgfSkudGhlbihyZXNvbHZlLCByZWplY3QpOwor
ICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBhZGRSZWxvYWRUZXN0Q2Fz
ZSh7CisgICAgICAgIG5hbWU6ICJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIs
CisgICAgICAgIGRlc2NyaXB0aW9uOiAiTG9hZCBhIHJlc291cmNlIGZyb20gdGhlIG1lbW9yeSBj
YWNoZSBieSByZWxvYWRpbmcgdGhpcyBwYWdlLiIsCisgICAgICAgIHBhdHRlcm46IC9jYWNoZWQt
c2NyaXB0XC5qcyQvLAorICAgICAgICBpZ25vcmVDYWNoZTogZmFsc2UsCisgICAgICAgIHJlc3Bv
bnNlU291cmNlOiBXSS5SZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSwKKyAgICAg
ICAgc3RhdHVzQ29kZTogMzA0LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5k
RmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KKzxwPlRlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuPC9w
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJl
dmFsaWRhdGUtZXhwaXJlZC1vbmx5LTQzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1j
YWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS00My1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIzMDJiZjllZDBlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNw
b25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTQzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJj
ZS5NZW1vcnlDYWNoZWAuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBSZXNvdXJjZS5SZXNw
b25zZVNvdXJjZS5NZW1vcnlDYWNoZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFJlc291cmNlLlJl
c3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCitQQVNTOiBSZXNvdXJjZSBzaG91bGQgZXhpc3QuCitQ
QVNTOiBzdGF0dXNDb2RlIHNob3VsZCBiZSAzMDQKK1BBU1M6IHJlc3BvbnNlU291cmNlIHNob3Vs
ZCBiZSBTeW1ib2wobWVtb3J5LWNhY2hlKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnkt
Y2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNDMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1j
YWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS00My5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi4zZWU0ZTJlNzEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291
cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS00My5odG1sCkBAIC0wLDAg
KzEsNTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FjaGVkLXNjcmlwdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CitUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiTG9hZENvbXBs
ZXRlIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZGVidWcoKTsK
KworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUmVzb3Vy
Y2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiKTsKKworICAgIGZ1bmN0aW9uIGFkZFJlbG9h
ZFRlc3RDYXNlKHtuYW1lLCBkZXNjcmlwdGlvbiwgZXhwcmVzc2lvbiwgcGF0dGVybiwgaWdub3Jl
Q2FjaGUsIHN0YXR1c0NvZGUsIHJlc3BvbnNlU291cmNlfSkgeworICAgICAgICBzdWl0ZS5hZGRU
ZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIHRl
c3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxv
YWRQYWdlKHtpZ25vcmVDYWNoZSwgcmV2YWxpZGF0ZUFsbFJlc291cmNlczogdHJ1ZX0pOworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgiTG9hZENvbXBsZXRlIikudGhl
bigoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHJlc291cmNlID0gbnVsbDsK
KyAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBXSS5uZXR3b3JrTWFuYWdlci5t
YWluRnJhbWUucmVzb3VyY2VDb2xsZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAocGF0dGVybi50ZXN0KGl0ZW0udXJsKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlc291cmNlID0gaXRlbTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICBpZiAoIXJlc291cmNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmZhaWwoIkZhaWxlZCB0byBmaW5kIHNwZWNpZmljIHJlc291cmNlLiIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RUaGF0KHJlc291cmNlIGluc3RhbmNlb2YgV0kuUmVzb3VyY2UsICJSZXNv
dXJjZSBzaG91bGQgZXhpc3QuIik7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0RXF1YWwocmVzb3VyY2Uuc3RhdHVzQ29kZSwgc3RhdHVzQ29kZSwgYHN0YXR1c0NvZGUg
c2hvdWxkIGJlICR7c3RhdHVzQ29kZX1gKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5yZXNwb25zZVNvdXJjZSwgcmVzcG9uc2VTb3VyY2Us
IGByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgJHtTdHJpbmcocmVzcG9uc2VTb3VyY2UpfWApOwor
ICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgYWRkUmVsb2FkVGVzdENhc2UoeworICAgICAgICBu
YW1lOiAiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiLAorICAgICAgICBkZXNj
cmlwdGlvbjogIkxvYWQgYSByZXNvdXJjZSBmcm9tIHRoZSBtZW1vcnkgY2FjaGUgYnkgcmVsb2Fk
aW5nIHRoaXMgcGFnZS4iLAorICAgICAgICBwYXR0ZXJuOiAvY2FjaGVkLXNjcmlwdFwuanMkLywK
KyAgICAgICAgaWdub3JlQ2FjaGU6IGZhbHNlLAorICAgICAgICByZXNwb25zZVNvdXJjZTogV0ku
UmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUsCisgICAgICAgIHN0YXR1c0NvZGU6
IDMwNCwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0IGZv
ciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLjwvcD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGly
ZWQtb25seS00NC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0
ZS1leHBpcmVkLW9ubHktNDQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi4yMzAyYmY5ZWQwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1l
bW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS00NC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw5IEBACitUZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVg
LgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVt
b3J5Q2FjaGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5N
ZW1vcnlDYWNoZQorUEFTUzogUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LgorUEFTUzogc3RhdHVzQ29k
ZSBzaG91bGQgYmUgMzA0CitQQVNTOiByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgU3ltYm9sKG1l
bW9yeS1jYWNoZSkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRh
dGUtZXhwaXJlZC1vbmx5LTQ0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0
ZS1leHBpcmVkLW9ubHktNDQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uM2VlNGUyZTcxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2Fj
aGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNDQuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2NhY2hlZC1zY3JpcHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
VGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQoIkxvYWRDb21wbGV0ZSIpOworCitmdW5j
dGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAgICBsZXQgc3Vp
dGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJlc291cmNlLlJlc3BvbnNlU291
cmNlLk1lbW9yeUNhY2hlIik7CisKKyAgICBmdW5jdGlvbiBhZGRSZWxvYWRUZXN0Q2FzZSh7bmFt
ZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb24sIHBhdHRlcm4sIGlnbm9yZUNhY2hlLCBzdGF0dXND
b2RlLCByZXNwb25zZVNvdXJjZX0pIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAg
ICAgICAgICAgbmFtZSwgZGVzY3JpcHRpb24sCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJl
amVjdCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSh7aWdub3Jl
Q2FjaGUsIHJldmFsaWRhdGVBbGxSZXNvdXJjZXM6IHRydWV9KTsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoIkxvYWRDb21wbGV0ZSIpLnRoZW4oKGV2ZW50KSA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9IG51bGw7CisgICAgICAgICAgICAg
ICAgICAgIGZvciAobGV0IGl0ZW0gb2YgV0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1lLnJlc291
cmNlQ29sbGVjdGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVz
dChpdGVtLnVybCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSA9IGl0
ZW07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYg
KCFyZXNvdXJjZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWls
KCJGYWlsZWQgdG8gZmluZCBzcGVjaWZpYyByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJlamVjdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0
VGhhdChyZXNvdXJjZSBpbnN0YW5jZW9mIFdJLlJlc291cmNlLCAiUmVzb3VyY2Ugc2hvdWxkIGV4
aXN0LiIpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJl
c291cmNlLnN0YXR1c0NvZGUsIHN0YXR1c0NvZGUsIGBzdGF0dXNDb2RlIHNob3VsZCBiZSAke3N0
YXR1c0NvZGV9YCk7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1
YWwocmVzb3VyY2UucmVzcG9uc2VTb3VyY2UsIHJlc3BvbnNlU291cmNlLCBgcmVzcG9uc2VTb3Vy
Y2Ugc2hvdWxkIGJlICR7U3RyaW5nKHJlc3BvbnNlU291cmNlKX1gKTsKKyAgICAgICAgICAgICAg
ICB9KS50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOwor
ICAgIH0KKworICAgIGFkZFJlbG9hZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlJlc291cmNl
LlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJMb2Fk
IGEgcmVzb3VyY2UgZnJvbSB0aGUgbWVtb3J5IGNhY2hlIGJ5IHJlbG9hZGluZyB0aGlzIHBhZ2Uu
IiwKKyAgICAgICAgcGF0dGVybjogL2NhY2hlZC1zY3JpcHRcLmpzJC8sCisgICAgICAgIGlnbm9y
ZUNhY2hlOiBmYWxzZSwKKyAgICAgICAgcmVzcG9uc2VTb3VyY2U6IFdJLlJlc291cmNlLlJlc3Bv
bnNlU291cmNlLk1lbW9yeUNhY2hlLAorICAgICAgICBzdGF0dXNDb2RlOiAzMDQsCisgICAgfSk7
CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdCBmb3IgYFJlc291cmNlLlJl
c3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJl
c3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNDUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNv
dXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5
LTQ1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
MjMwMmJmOWVkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2
YWxpZGF0ZS1leHBpcmVkLW9ubHktNDUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVz
dCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC4KKworCis9PSBSdW5u
aW5nIHRlc3Qgc3VpdGU6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCistLSBS
dW5uaW5nIHRlc3QgY2FzZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKK1BB
U1M6IFJlc291cmNlIHNob3VsZCBleGlzdC4KK1BBU1M6IHN0YXR1c0NvZGUgc2hvdWxkIGJlIDMw
NAorUEFTUzogcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlIFN5bWJvbChtZW1vcnktY2FjaGUpCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVz
b3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25s
eS00NS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNv
dXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5
LTQ1Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNlZTRlMmU3
MTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUt
ZXhwaXJlZC1vbmx5LTQ1Lmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9jYWNoZWQtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1Rlc3RQYWdlLmRpc3Bh
dGNoRXZlbnRUb0Zyb250ZW5kKCJMb2FkQ29tcGxldGUiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7
CisgICAgSW5zcGVjdG9yVGVzdC5kZWJ1ZygpOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9y
VGVzdC5jcmVhdGVBc3luY1N1aXRlKCJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNo
ZSIpOworCisgICAgZnVuY3Rpb24gYWRkUmVsb2FkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9u
LCBleHByZXNzaW9uLCBwYXR0ZXJuLCBpZ25vcmVDYWNoZSwgc3RhdHVzQ29kZSwgcmVzcG9uc2VT
b3VyY2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUs
IGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoe2lnbm9yZUNhY2hlLCByZXZhbGlk
YXRlQWxsUmVzb3VyY2VzOiB0cnVlfSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
d2FpdEV2ZW50KCJMb2FkQ29tcGxldGUiKS50aGVuKChldmVudCkgPT4geworICAgICAgICAgICAg
ICAgICAgICBsZXQgcmVzb3VyY2UgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBmb3IgKGxl
dCBpdGVtIG9mIFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5yZXNvdXJjZUNvbGxlY3Rpb24p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJuLnRlc3QoaXRlbS51cmwpKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSBpdGVtOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2UpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgiRmFpbGVkIHRvIGZp
bmQgc3BlY2lmaWMgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZWplY3Qo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocmVzb3VyY2Ug
aW5zdGFuY2VvZiBXSS5SZXNvdXJjZSwgIlJlc291cmNlIHNob3VsZCBleGlzdC4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5zdGF0dXND
b2RlLCBzdGF0dXNDb2RlLCBgc3RhdHVzQ29kZSBzaG91bGQgYmUgJHtzdGF0dXNDb2RlfWApOwor
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnJl
c3BvbnNlU291cmNlLCByZXNwb25zZVNvdXJjZSwgYHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSAk
e1N0cmluZyhyZXNwb25zZVNvdXJjZSl9YCk7CisgICAgICAgICAgICAgICAgfSkudGhlbihyZXNv
bHZlLCByZWplY3QpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBh
ZGRSZWxvYWRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJSZXNvdXJjZS5SZXNwb25zZVNvdXJj
ZS5NZW1vcnlDYWNoZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiTG9hZCBhIHJlc291cmNlIGZy
b20gdGhlIG1lbW9yeSBjYWNoZSBieSByZWxvYWRpbmcgdGhpcyBwYWdlLiIsCisgICAgICAgIHBh
dHRlcm46IC9jYWNoZWQtc2NyaXB0XC5qcyQvLAorICAgICAgICBpZ25vcmVDYWNoZTogZmFsc2Us
CisgICAgICAgIHJlc3BvbnNlU291cmNlOiBXSS5SZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1v
cnlDYWNoZSwKKyAgICAgICAgc3RhdHVzQ29kZTogMzA0LAorICAgIH0pOworCisgICAgc3VpdGUu
cnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5N
ZW1vcnlDYWNoZWAuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2Ut
bWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTQ2LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Ut
c291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS00Ni1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIzMDJiZjllZDBlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJl
ZC1vbmx5LTQ2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3QgZm9yIGBSZXNvdXJj
ZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRl
OiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorLS0gUnVubmluZyB0ZXN0IGNh
c2U6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCitQQVNTOiBSZXNvdXJjZSBz
aG91bGQgZXhpc3QuCitQQVNTOiBzdGF0dXNDb2RlIHNob3VsZCBiZSAzMDQKK1BBU1M6IHJlc3Bv
bnNlU291cmNlIHNob3VsZCBiZSBTeW1ib2wobWVtb3J5LWNhY2hlKQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNl
LXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNDYuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Ut
c291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS00Ni5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZWU0ZTJlNzEzYgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3Vy
Y2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS00
Ni5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FjaGVkLXNj
cmlwdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9u
dGVuZCgiTG9hZENvbXBsZXRlIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3Rv
clRlc3QuZGVidWcoKTsKKworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5
bmNTdWl0ZSgiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiKTsKKworICAgIGZ1
bmN0aW9uIGFkZFJlbG9hZFRlc3RDYXNlKHtuYW1lLCBkZXNjcmlwdGlvbiwgZXhwcmVzc2lvbiwg
cGF0dGVybiwgaWdub3JlQ2FjaGUsIHN0YXR1c0NvZGUsIHJlc3BvbnNlU291cmNlfSkgeworICAg
ICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwK
KyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5yZWxvYWRQYWdlKHtpZ25vcmVDYWNoZSwgcmV2YWxpZGF0ZUFsbFJlc291cmNl
czogdHJ1ZX0pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgiTG9h
ZENvbXBsZXRlIikudGhlbigoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHJl
c291cmNlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBXSS5u
ZXR3b3JrTWFuYWdlci5tYWluRnJhbWUucmVzb3VyY2VDb2xsZWN0aW9uKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAocGF0dGVybi50ZXN0KGl0ZW0udXJsKSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlc291cmNlID0gaXRlbTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc291cmNlKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZhaWwoIkZhaWxlZCB0byBmaW5kIHNwZWNpZmljIHJl
c291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHJlc291cmNlIGluc3RhbmNlb2YgV0ku
UmVzb3VyY2UsICJSZXNvdXJjZSBzaG91bGQgZXhpc3QuIik7CisgICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uuc3RhdHVzQ29kZSwgc3RhdHVzQ29k
ZSwgYHN0YXR1c0NvZGUgc2hvdWxkIGJlICR7c3RhdHVzQ29kZX1gKTsKKyAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5yZXNwb25zZVNvdXJjZSwg
cmVzcG9uc2VTb3VyY2UsIGByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgJHtTdHJpbmcocmVzcG9u
c2VTb3VyY2UpfWApOworICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgYWRkUmVsb2FkVGVzdENh
c2UoeworICAgICAgICBuYW1lOiAiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUi
LAorICAgICAgICBkZXNjcmlwdGlvbjogIkxvYWQgYSByZXNvdXJjZSBmcm9tIHRoZSBtZW1vcnkg
Y2FjaGUgYnkgcmVsb2FkaW5nIHRoaXMgcGFnZS4iLAorICAgICAgICBwYXR0ZXJuOiAvY2FjaGVk
LXNjcmlwdFwuanMkLywKKyAgICAgICAgaWdub3JlQ2FjaGU6IGZhbHNlLAorICAgICAgICByZXNw
b25zZVNvdXJjZTogV0kuUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUsCisgICAg
ICAgIHN0YXR1c0NvZGU6IDMwNCwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0Fu
ZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Cis8cD5UZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLjwv
cD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1y
ZXZhbGlkYXRlLWV4cGlyZWQtb25seS00Ny1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnkt
Y2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNDctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzAyYmY5ZWQwZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVz
cG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS00Ny1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3Vy
Y2UuTWVtb3J5Q2FjaGVgLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUmVzb3VyY2UuUmVz
cG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBSZXNvdXJjZS5S
ZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorUEFTUzogUmVzb3VyY2Ugc2hvdWxkIGV4aXN0Lgor
UEFTUzogc3RhdHVzQ29kZSBzaG91bGQgYmUgMzA0CitQQVNTOiByZXNwb25zZVNvdXJjZSBzaG91
bGQgYmUgU3ltYm9sKG1lbW9yeS1jYWNoZSkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5
LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTQ3Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnkt
Y2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNDcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uM2VlNGUyZTcxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNv
dXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNDcuaHRtbApAQCAtMCww
ICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NhY2hlZC1zY3JpcHQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQoIkxvYWRDb21w
bGV0ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7
CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJlc291
cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIik7CisKKyAgICBmdW5jdGlvbiBhZGRSZWxv
YWRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb24sIHBhdHRlcm4sIGlnbm9y
ZUNhY2hlLCBzdGF0dXNDb2RlLCByZXNwb25zZVNvdXJjZX0pIHsKKyAgICAgICAgc3VpdGUuYWRk
VGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwgZGVzY3JpcHRpb24sCisgICAgICAgICAgICB0
ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVs
b2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRhdGVBbGxSZXNvdXJjZXM6IHRydWV9KTsKKyAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoIkxvYWRDb21wbGV0ZSIpLnRo
ZW4oKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9IG51bGw7
CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgV0kubmV0d29ya01hbmFnZXIu
bWFpbkZyYW1lLnJlc291cmNlQ29sbGVjdGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKHBhdHRlcm4udGVzdChpdGVtLnVybCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXNvdXJjZSA9IGl0ZW07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQgdG8gZmluZCBzcGVjaWZpYyByZXNvdXJjZS4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgpOworICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChyZXNvdXJjZSBpbnN0YW5jZW9mIFdJLlJlc291cmNlLCAiUmVz
b3VyY2Ugc2hvdWxkIGV4aXN0LiIpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1c0NvZGUsIHN0YXR1c0NvZGUsIGBzdGF0dXNDb2Rl
IHNob3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2UucmVzcG9uc2VTb3VyY2UsIHJlc3BvbnNlU291cmNl
LCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlICR7U3RyaW5nKHJlc3BvbnNlU291cmNlKX1gKTsK
KyAgICAgICAgICAgICAgICB9KS50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0pOworICAgIH0KKworICAgIGFkZFJlbG9hZFRlc3RDYXNlKHsKKyAgICAgICAg
bmFtZTogIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIiwKKyAgICAgICAgZGVz
Y3JpcHRpb246ICJMb2FkIGEgcmVzb3VyY2UgZnJvbSB0aGUgbWVtb3J5IGNhY2hlIGJ5IHJlbG9h
ZGluZyB0aGlzIHBhZ2UuIiwKKyAgICAgICAgcGF0dGVybjogL2NhY2hlZC1zY3JpcHRcLmpzJC8s
CisgICAgICAgIGlnbm9yZUNhY2hlOiBmYWxzZSwKKyAgICAgICAgcmVzcG9uc2VTb3VyY2U6IFdJ
LlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlLAorICAgICAgICBzdGF0dXNDb2Rl
OiAzMDQsCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdCBm
b3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC48L3A+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBp
cmVkLW9ubHktNDgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRh
dGUtZXhwaXJlZC1vbmx5LTQ4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1t
ZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNDgtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsOSBAQAorVGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hl
YC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1l
bW9yeUNhY2hlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2Uu
TWVtb3J5Q2FjaGUKK1BBU1M6IFJlc291cmNlIHNob3VsZCBleGlzdC4KK1BBU1M6IHN0YXR1c0Nv
ZGUgc2hvdWxkIGJlIDMwNAorUEFTUzogcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlIFN5bWJvbCht
ZW1vcnktY2FjaGUpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlk
YXRlLWV4cGlyZWQtb25seS00OC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRh
dGUtZXhwaXJlZC1vbmx5LTQ4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNh
Y2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTQ4Lmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9jYWNoZWQtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K1Rlc3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5kKCJMb2FkQ29tcGxldGUiKTsKKworZnVu
Y3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5kZWJ1ZygpOworCisgICAgbGV0IHN1
aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJSZXNvdXJjZS5SZXNwb25zZVNv
dXJjZS5NZW1vcnlDYWNoZSIpOworCisgICAgZnVuY3Rpb24gYWRkUmVsb2FkVGVzdENhc2Uoe25h
bWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9uLCBwYXR0ZXJuLCBpZ25vcmVDYWNoZSwgc3RhdHVz
Q29kZSwgcmVzcG9uc2VTb3VyY2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAg
ICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgdGVzdChyZXNvbHZlLCBy
ZWplY3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoe2lnbm9y
ZUNhY2hlLCByZXZhbGlkYXRlQWxsUmVzb3VyY2VzOiB0cnVlfSk7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJMb2FkQ29tcGxldGUiKS50aGVuKChldmVudCkgPT4g
eworICAgICAgICAgICAgICAgICAgICBsZXQgcmVzb3VyY2UgPSBudWxsOworICAgICAgICAgICAg
ICAgICAgICBmb3IgKGxldCBpdGVtIG9mIFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5yZXNv
dXJjZUNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJuLnRl
c3QoaXRlbS51cmwpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSBp
dGVtOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlm
ICghcmVzb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFp
bCgiRmFpbGVkIHRvIGZpbmQgc3BlY2lmaWMgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICByZWplY3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dFRoYXQocmVzb3VyY2UgaW5zdGFuY2VvZiBXSS5SZXNvdXJjZSwgIlJlc291cmNlIHNob3VsZCBl
eGlzdC4iKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChy
ZXNvdXJjZS5zdGF0dXNDb2RlLCBzdGF0dXNDb2RlLCBgc3RhdHVzQ29kZSBzaG91bGQgYmUgJHtz
dGF0dXNDb2RlfWApOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVx
dWFsKHJlc291cmNlLnJlc3BvbnNlU291cmNlLCByZXNwb25zZVNvdXJjZSwgYHJlc3BvbnNlU291
cmNlIHNob3VsZCBiZSAke1N0cmluZyhyZXNwb25zZVNvdXJjZSl9YCk7CisgICAgICAgICAgICAg
ICAgfSkudGhlbihyZXNvbHZlLCByZWplY3QpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsK
KyAgICB9CisKKyAgICBhZGRSZWxvYWRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJSZXNvdXJj
ZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiTG9h
ZCBhIHJlc291cmNlIGZyb20gdGhlIG1lbW9yeSBjYWNoZSBieSByZWxvYWRpbmcgdGhpcyBwYWdl
LiIsCisgICAgICAgIHBhdHRlcm46IC9jYWNoZWQtc2NyaXB0XC5qcyQvLAorICAgICAgICBpZ25v
cmVDYWNoZTogZmFsc2UsCisgICAgICAgIHJlc3BvbnNlU291cmNlOiBXSS5SZXNvdXJjZS5SZXNw
b25zZVNvdXJjZS5NZW1vcnlDYWNoZSwKKyAgICAgICAgc3RhdHVzQ29kZTogMzA0LAorICAgIH0p
OworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9yIGBSZXNvdXJjZS5S
ZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1y
ZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTQ5LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVz
b3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25s
eS00OS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LjIzMDJiZjllZDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJl
dmFsaWRhdGUtZXhwaXJlZC1vbmx5LTQ5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rl
c3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuCisKKworPT0gUnVu
bmluZyB0ZXN0IHN1aXRlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorLS0g
UnVubmluZyB0ZXN0IGNhc2U6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCitQ
QVNTOiBSZXNvdXJjZSBzaG91bGQgZXhpc3QuCitQQVNTOiBzdGF0dXNDb2RlIHNob3VsZCBiZSAz
MDQKK1BBU1M6IHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSBTeW1ib2wobWVtb3J5LWNhY2hlKQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jl
c291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9u
bHktNDkuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVz
b3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25s
eS00OS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZWU0ZTJl
NzEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRl
LWV4cGlyZWQtb25seS00OS5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvY2FjaGVkLXNjcmlwdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitUZXN0UGFnZS5kaXNw
YXRjaEV2ZW50VG9Gcm9udGVuZCgiTG9hZENvbXBsZXRlIik7CisKK2Z1bmN0aW9uIHRlc3QoKQor
eworICAgIEluc3BlY3RvclRlc3QuZGVidWcoKTsKKworICAgIGxldCBzdWl0ZSA9IEluc3BlY3Rv
clRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2Fj
aGUiKTsKKworICAgIGZ1bmN0aW9uIGFkZFJlbG9hZFRlc3RDYXNlKHtuYW1lLCBkZXNjcmlwdGlv
biwgZXhwcmVzc2lvbiwgcGF0dGVybiwgaWdub3JlQ2FjaGUsIHN0YXR1c0NvZGUsIHJlc3BvbnNl
U291cmNlfSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1l
LCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHtpZ25vcmVDYWNoZSwgcmV2YWxp
ZGF0ZUFsbFJlc291cmNlczogdHJ1ZX0pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXdhaXRFdmVudCgiTG9hZENvbXBsZXRlIikudGhlbigoZXZlbnQpID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgbGV0IHJlc291cmNlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChs
ZXQgaXRlbSBvZiBXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUucmVzb3VyY2VDb2xsZWN0aW9u
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGF0dGVybi50ZXN0KGl0ZW0udXJsKSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlID0gaXRlbTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc291cmNlKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZhaWwoIkZhaWxlZCB0byBm
aW5kIHNwZWNpZmljIHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHJlc291cmNl
IGluc3RhbmNlb2YgV0kuUmVzb3VyY2UsICJSZXNvdXJjZSBzaG91bGQgZXhpc3QuIik7CisgICAg
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uuc3RhdHVz
Q29kZSwgc3RhdHVzQ29kZSwgYHN0YXR1c0NvZGUgc2hvdWxkIGJlICR7c3RhdHVzQ29kZX1gKTsK
KyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5y
ZXNwb25zZVNvdXJjZSwgcmVzcG9uc2VTb3VyY2UsIGByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUg
JHtTdHJpbmcocmVzcG9uc2VTb3VyY2UpfWApOworICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVz
b2x2ZSwgcmVqZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAg
YWRkUmVsb2FkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiUmVzb3VyY2UuUmVzcG9uc2VTb3Vy
Y2UuTWVtb3J5Q2FjaGUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkxvYWQgYSByZXNvdXJjZSBm
cm9tIHRoZSBtZW1vcnkgY2FjaGUgYnkgcmVsb2FkaW5nIHRoaXMgcGFnZS4iLAorICAgICAgICBw
YXR0ZXJuOiAvY2FjaGVkLXNjcmlwdFwuanMkLywKKyAgICAgICAgaWdub3JlQ2FjaGU6IGZhbHNl
LAorICAgICAgICByZXNwb25zZVNvdXJjZTogV0kuUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVt
b3J5Q2FjaGUsCisgICAgICAgIHN0YXR1c0NvZGU6IDMwNCwKKyAgICB9KTsKKworICAgIHN1aXRl
LnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2Uu
TWVtb3J5Q2FjaGVgLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNl
LW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS01LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Ut
c291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS01LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVk
LW9ubHktNS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0IGZvciBgUmVzb3VyY2Uu
UmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTog
UmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNl
OiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorUEFTUzogUmVzb3VyY2Ugc2hv
dWxkIGV4aXN0LgorUEFTUzogc3RhdHVzQ29kZSBzaG91bGQgYmUgMzA0CitQQVNTOiByZXNwb25z
ZVNvdXJjZSBzaG91bGQgYmUgU3ltYm9sKG1lbW9yeS1jYWNoZSkKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1z
b3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTUuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291
cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS01Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1y
ZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTUuaHRt
bApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NhY2hlZC1zY3JpcHQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQo
IkxvYWRDb21wbGV0ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0
LmRlYnVnKCk7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3Vp
dGUoIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIik7CisKKyAgICBmdW5jdGlv
biBhZGRSZWxvYWRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb24sIHBhdHRl
cm4sIGlnbm9yZUNhY2hlLCBzdGF0dXNDb2RlLCByZXNwb25zZVNvdXJjZX0pIHsKKyAgICAgICAg
c3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwgZGVzY3JpcHRpb24sCisgICAg
ICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QucmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRhdGVBbGxSZXNvdXJjZXM6IHRy
dWV9KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoIkxvYWRDb21w
bGV0ZSIpLnRoZW4oKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGxldCByZXNvdXJj
ZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgV0kubmV0d29y
a01hbmFnZXIubWFpbkZyYW1lLnJlc291cmNlQ29sbGVjdGlvbikgeworICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChpdGVtLnVybCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXNvdXJjZSA9IGl0ZW07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQgdG8gZmluZCBzcGVjaWZpYyByZXNvdXJj
ZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgpOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXNvdXJjZSBpbnN0YW5jZW9mIFdJLlJlc291
cmNlLCAiUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LiIpOworICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1c0NvZGUsIHN0YXR1c0NvZGUsIGBz
dGF0dXNDb2RlIHNob3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7CisgICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2UucmVzcG9uc2VTb3VyY2UsIHJlc3Bv
bnNlU291cmNlLCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlICR7U3RyaW5nKHJlc3BvbnNlU291
cmNlKX1gKTsKKyAgICAgICAgICAgICAgICB9KS50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIGFkZFJlbG9hZFRlc3RDYXNlKHsK
KyAgICAgICAgbmFtZTogIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIiwKKyAg
ICAgICAgZGVzY3JpcHRpb246ICJMb2FkIGEgcmVzb3VyY2UgZnJvbSB0aGUgbWVtb3J5IGNhY2hl
IGJ5IHJlbG9hZGluZyB0aGlzIHBhZ2UuIiwKKyAgICAgICAgcGF0dGVybjogL2NhY2hlZC1zY3Jp
cHRcLmpzJC8sCisgICAgICAgIGlnbm9yZUNhY2hlOiBmYWxzZSwKKyAgICAgICAgcmVzcG9uc2VT
b3VyY2U6IFdJLlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlLAorICAgICAgICBz
dGF0dXNDb2RlOiAzMDQsCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5p
c2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgor
PHA+VGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC48L3A+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxp
ZGF0ZS1leHBpcmVkLW9ubHktNTAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hl
LXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTUwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNl
LXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNTAtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1l
bW9yeUNhY2hlYC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFJlc291cmNlLlJlc3BvbnNl
U291cmNlLk1lbW9yeUNhY2hlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUmVzb3VyY2UuUmVzcG9u
c2VTb3VyY2UuTWVtb3J5Q2FjaGUKK1BBU1M6IFJlc291cmNlIHNob3VsZCBleGlzdC4KK1BBU1M6
IHN0YXR1c0NvZGUgc2hvdWxkIGJlIDMwNAorUEFTUzogcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJl
IFN5bWJvbChtZW1vcnktY2FjaGUpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNo
ZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS01MC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hl
LXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTUwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2Ut
bWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTUwLmh0bWwKQEAgLTAsMCArMSw1
OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jYWNoZWQtc2NyaXB0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK1Rlc3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5kKCJMb2FkQ29tcGxldGUi
KTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5kZWJ1ZygpOworCisg
ICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJSZXNvdXJjZS5S
ZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIpOworCisgICAgZnVuY3Rpb24gYWRkUmVsb2FkVGVz
dENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9uLCBwYXR0ZXJuLCBpZ25vcmVDYWNo
ZSwgc3RhdHVzQ29kZSwgcmVzcG9uc2VTb3VyY2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RD
YXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgdGVzdChy
ZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBh
Z2Uoe2lnbm9yZUNhY2hlLCByZXZhbGlkYXRlQWxsUmVzb3VyY2VzOiB0cnVlfSk7CisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJMb2FkQ29tcGxldGUiKS50aGVuKChl
dmVudCkgPT4geworICAgICAgICAgICAgICAgICAgICBsZXQgcmVzb3VyY2UgPSBudWxsOworICAg
ICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5G
cmFtZS5yZXNvdXJjZUNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChw
YXR0ZXJuLnRlc3QoaXRlbS51cmwpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz
b3VyY2UgPSBpdGVtOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIGlmICghcmVzb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZmFpbCgiRmFpbGVkIHRvIGZpbmQgc3BlY2lmaWMgcmVzb3VyY2UuIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICByZWplY3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdFRoYXQocmVzb3VyY2UgaW5zdGFuY2VvZiBXSS5SZXNvdXJjZSwgIlJlc291cmNl
IHNob3VsZCBleGlzdC4iKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RFcXVhbChyZXNvdXJjZS5zdGF0dXNDb2RlLCBzdGF0dXNDb2RlLCBgc3RhdHVzQ29kZSBzaG91
bGQgYmUgJHtzdGF0dXNDb2RlfWApOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdEVxdWFsKHJlc291cmNlLnJlc3BvbnNlU291cmNlLCByZXNwb25zZVNvdXJjZSwgYHJl
c3BvbnNlU291cmNlIHNob3VsZCBiZSAke1N0cmluZyhyZXNwb25zZVNvdXJjZSl9YCk7CisgICAg
ICAgICAgICAgICAgfSkudGhlbihyZXNvbHZlLCByZWplY3QpOworICAgICAgICAgICAgfQorICAg
ICAgICB9KTsKKyAgICB9CisKKyAgICBhZGRSZWxvYWRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6
ICJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIsCisgICAgICAgIGRlc2NyaXB0
aW9uOiAiTG9hZCBhIHJlc291cmNlIGZyb20gdGhlIG1lbW9yeSBjYWNoZSBieSByZWxvYWRpbmcg
dGhpcyBwYWdlLiIsCisgICAgICAgIHBhdHRlcm46IC9jYWNoZWQtc2NyaXB0XC5qcyQvLAorICAg
ICAgICBpZ25vcmVDYWNoZTogZmFsc2UsCisgICAgICAgIHJlc3BvbnNlU291cmNlOiBXSS5SZXNv
dXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSwKKyAgICAgICAgc3RhdHVzQ29kZTogMzA0
LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9yIGBS
ZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuPC9wPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9y
ZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1v
bmx5LTUxLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4
cGlyZWQtb25seS01MS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjIzMDJiZjllZDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5
LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTUxLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDkgQEAKK1Rlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuCisK
KworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlD
YWNoZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9y
eUNhY2hlCitQQVNTOiBSZXNvdXJjZSBzaG91bGQgZXhpc3QuCitQQVNTOiBzdGF0dXNDb2RlIHNo
b3VsZCBiZSAzMDQKK1BBU1M6IHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSBTeW1ib2wobWVtb3J5
LWNhY2hlKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1l
eHBpcmVkLW9ubHktNTEuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4
cGlyZWQtb25seS01MS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4zZWU0ZTJlNzEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1y
ZXZhbGlkYXRlLWV4cGlyZWQtb25seS01MS5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvY2FjaGVkLXNjcmlwdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitUZXN0
UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiTG9hZENvbXBsZXRlIik7CisKK2Z1bmN0aW9u
IHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZGVidWcoKTsKKworICAgIGxldCBzdWl0ZSA9
IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2Uu
TWVtb3J5Q2FjaGUiKTsKKworICAgIGZ1bmN0aW9uIGFkZFJlbG9hZFRlc3RDYXNlKHtuYW1lLCBk
ZXNjcmlwdGlvbiwgZXhwcmVzc2lvbiwgcGF0dGVybiwgaWdub3JlQ2FjaGUsIHN0YXR1c0NvZGUs
IHJlc3BvbnNlU291cmNlfSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAg
ICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0
KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHtpZ25vcmVDYWNo
ZSwgcmV2YWxpZGF0ZUFsbFJlc291cmNlczogdHJ1ZX0pOworICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYXdhaXRFdmVudCgiTG9hZENvbXBsZXRlIikudGhlbigoZXZlbnQpID0+IHsKKyAg
ICAgICAgICAgICAgICAgICAgbGV0IHJlc291cmNlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAg
ICAgZm9yIChsZXQgaXRlbSBvZiBXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUucmVzb3VyY2VD
b2xsZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGF0dGVybi50ZXN0KGl0
ZW0udXJsKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlID0gaXRlbTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIXJl
c291cmNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZhaWwoIkZh
aWxlZCB0byBmaW5kIHNwZWNpZmljIHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmVqZWN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0
KHJlc291cmNlIGluc3RhbmNlb2YgV0kuUmVzb3VyY2UsICJSZXNvdXJjZSBzaG91bGQgZXhpc3Qu
Iik7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3Vy
Y2Uuc3RhdHVzQ29kZSwgc3RhdHVzQ29kZSwgYHN0YXR1c0NvZGUgc2hvdWxkIGJlICR7c3RhdHVz
Q29kZX1gKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChy
ZXNvdXJjZS5yZXNwb25zZVNvdXJjZSwgcmVzcG9uc2VTb3VyY2UsIGByZXNwb25zZVNvdXJjZSBz
aG91bGQgYmUgJHtTdHJpbmcocmVzcG9uc2VTb3VyY2UpfWApOworICAgICAgICAgICAgICAgIH0p
LnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAg
fQorCisgICAgYWRkUmVsb2FkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiUmVzb3VyY2UuUmVz
cG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkxvYWQgYSBy
ZXNvdXJjZSBmcm9tIHRoZSBtZW1vcnkgY2FjaGUgYnkgcmVsb2FkaW5nIHRoaXMgcGFnZS4iLAor
ICAgICAgICBwYXR0ZXJuOiAvY2FjaGVkLXNjcmlwdFwuanMkLywKKyAgICAgICAgaWdub3JlQ2Fj
aGU6IGZhbHNlLAorICAgICAgICByZXNwb25zZVNvdXJjZTogV0kuUmVzb3VyY2UuUmVzcG9uc2VT
b3VyY2UuTWVtb3J5Q2FjaGUsCisgICAgICAgIHN0YXR1c0NvZGU6IDMwNCwKKyAgICB9KTsKKwor
ICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9u
c2VTb3VyY2UuTWVtb3J5Q2FjaGVgLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9u
c2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS01Mi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNl
LXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNTIt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzAy
YmY5ZWQwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlk
YXRlLWV4cGlyZWQtb25seS01Mi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0IGZv
ciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLgorCisKKz09IFJ1bm5pbmcg
dGVzdCBzdWl0ZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKKy0tIFJ1bm5p
bmcgdGVzdCBjYXNlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorUEFTUzog
UmVzb3VyY2Ugc2hvdWxkIGV4aXN0LgorUEFTUzogc3RhdHVzQ29kZSBzaG91bGQgYmUgMzA0CitQ
QVNTOiByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgU3ltYm9sKG1lbW9yeS1jYWNoZSkKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJj
ZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTUy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNl
LXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNTIu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2VlNGUyZTcxM2IK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBp
cmVkLW9ubHktNTIuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L2NhY2hlZC1zY3JpcHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorVGVzdFBhZ2UuZGlzcGF0Y2hF
dmVudFRvRnJvbnRlbmQoIkxvYWRDb21wbGV0ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAg
ICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0
LmNyZWF0ZUFzeW5jU3VpdGUoIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIik7
CisKKyAgICBmdW5jdGlvbiBhZGRSZWxvYWRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4
cHJlc3Npb24sIHBhdHRlcm4sIGlnbm9yZUNhY2hlLCBzdGF0dXNDb2RlLCByZXNwb25zZVNvdXJj
ZX0pIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwgZGVz
Y3JpcHRpb24sCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRhdGVB
bGxSZXNvdXJjZXM6IHRydWV9KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0
RXZlbnQoIkxvYWRDb21wbGV0ZSIpLnRoZW4oKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAg
ICAgIGxldCByZXNvdXJjZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0
ZW0gb2YgV0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1lLnJlc291cmNlQ29sbGVjdGlvbikgewor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChpdGVtLnVybCkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSA9IGl0ZW07CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkgeworICAg
ICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQgdG8gZmluZCBz
cGVjaWZpYyByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXNvdXJjZSBpbnN0
YW5jZW9mIFdJLlJlc291cmNlLCAiUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LiIpOworICAgICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1c0NvZGUs
IHN0YXR1c0NvZGUsIGBzdGF0dXNDb2RlIHNob3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7CisgICAg
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2UucmVzcG9u
c2VTb3VyY2UsIHJlc3BvbnNlU291cmNlLCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlICR7U3Ry
aW5nKHJlc3BvbnNlU291cmNlKX1gKTsKKyAgICAgICAgICAgICAgICB9KS50aGVuKHJlc29sdmUs
IHJlamVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIGFkZFJl
bG9hZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1l
bW9yeUNhY2hlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJMb2FkIGEgcmVzb3VyY2UgZnJvbSB0
aGUgbWVtb3J5IGNhY2hlIGJ5IHJlbG9hZGluZyB0aGlzIHBhZ2UuIiwKKyAgICAgICAgcGF0dGVy
bjogL2NhY2hlZC1zY3JpcHRcLmpzJC8sCisgICAgICAgIGlnbm9yZUNhY2hlOiBmYWxzZSwKKyAg
ICAgICAgcmVzcG9uc2VTb3VyY2U6IFdJLlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNh
Y2hlLAorICAgICAgICBzdGF0dXNDb2RlOiAzMDQsCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5U
ZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgorPHA+VGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9y
eUNhY2hlYC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1v
cnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNTMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3Vy
Y2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTUzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jl
c291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9u
bHktNTMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdCBmb3IgYFJlc291cmNlLlJl
c3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFJl
c291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCistLSBSdW5uaW5nIHRlc3QgY2FzZTog
UmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKK1BBU1M6IFJlc291cmNlIHNob3Vs
ZCBleGlzdC4KK1BBU1M6IHN0YXR1c0NvZGUgc2hvdWxkIGJlIDMwNAorUEFTUzogcmVzcG9uc2VT
b3VyY2Ugc2hvdWxkIGJlIFN5bWJvbChtZW1vcnktY2FjaGUpCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291
cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS01My5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3Vy
Y2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTUzLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1y
ZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTUzLmh0
bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jYWNoZWQtc2NyaXB0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1Rlc3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5k
KCJMb2FkQ29tcGxldGUiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVz
dC5kZWJ1ZygpOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1
aXRlKCJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIpOworCisgICAgZnVuY3Rp
b24gYWRkUmVsb2FkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9uLCBwYXR0
ZXJuLCBpZ25vcmVDYWNoZSwgc3RhdHVzQ29kZSwgcmVzcG9uc2VTb3VyY2V9KSB7CisgICAgICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAg
ICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LnJlbG9hZFBhZ2Uoe2lnbm9yZUNhY2hlLCByZXZhbGlkYXRlQWxsUmVzb3VyY2VzOiB0
cnVlfSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJMb2FkQ29t
cGxldGUiKS50aGVuKChldmVudCkgPT4geworICAgICAgICAgICAgICAgICAgICBsZXQgcmVzb3Vy
Y2UgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIFdJLm5ldHdv
cmtNYW5hZ2VyLm1haW5GcmFtZS5yZXNvdXJjZUNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChwYXR0ZXJuLnRlc3QoaXRlbS51cmwpKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVzb3VyY2UgPSBpdGVtOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgiRmFpbGVkIHRvIGZpbmQgc3BlY2lmaWMgcmVzb3Vy
Y2UuIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocmVzb3VyY2UgaW5zdGFuY2VvZiBXSS5SZXNv
dXJjZSwgIlJlc291cmNlIHNob3VsZCBleGlzdC4iKTsKKyAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5zdGF0dXNDb2RlLCBzdGF0dXNDb2RlLCBg
c3RhdHVzQ29kZSBzaG91bGQgYmUgJHtzdGF0dXNDb2RlfWApOworICAgICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnJlc3BvbnNlU291cmNlLCByZXNw
b25zZVNvdXJjZSwgYHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSAke1N0cmluZyhyZXNwb25zZVNv
dXJjZSl9YCk7CisgICAgICAgICAgICAgICAgfSkudGhlbihyZXNvbHZlLCByZWplY3QpOworICAg
ICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBhZGRSZWxvYWRUZXN0Q2FzZSh7
CisgICAgICAgIG5hbWU6ICJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIsCisg
ICAgICAgIGRlc2NyaXB0aW9uOiAiTG9hZCBhIHJlc291cmNlIGZyb20gdGhlIG1lbW9yeSBjYWNo
ZSBieSByZWxvYWRpbmcgdGhpcyBwYWdlLiIsCisgICAgICAgIHBhdHRlcm46IC9jYWNoZWQtc2Ny
aXB0XC5qcyQvLAorICAgICAgICBpZ25vcmVDYWNoZTogZmFsc2UsCisgICAgICAgIHJlc3BvbnNl
U291cmNlOiBXSS5SZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSwKKyAgICAgICAg
c3RhdHVzQ29kZTogMzA0LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmlu
aXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
KzxwPlRlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuPC9wPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFs
aWRhdGUtZXhwaXJlZC1vbmx5LTU0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNo
ZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS01NC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIzMDJiZjllZDBlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25z
ZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTU0LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5N
ZW1vcnlDYWNoZWAuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBSZXNvdXJjZS5SZXNwb25z
ZVNvdXJjZS5NZW1vcnlDYWNoZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFJlc291cmNlLlJlc3Bv
bnNlU291cmNlLk1lbW9yeUNhY2hlCitQQVNTOiBSZXNvdXJjZSBzaG91bGQgZXhpc3QuCitQQVNT
OiBzdGF0dXNDb2RlIHNob3VsZCBiZSAzMDQKK1BBU1M6IHJlc3BvbnNlU291cmNlIHNob3VsZCBi
ZSBTeW1ib2wobWVtb3J5LWNhY2hlKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2Fj
aGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNTQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNo
ZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS01NC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi4zZWU0ZTJlNzEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNl
LW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS01NC5odG1sCkBAIC0wLDAgKzEs
NTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FjaGVkLXNjcmlwdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CitUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiTG9hZENvbXBsZXRl
Iik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZGVidWcoKTsKKwor
ICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUmVzb3VyY2Uu
UmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiKTsKKworICAgIGZ1bmN0aW9uIGFkZFJlbG9hZFRl
c3RDYXNlKHtuYW1lLCBkZXNjcmlwdGlvbiwgZXhwcmVzc2lvbiwgcGF0dGVybiwgaWdub3JlQ2Fj
aGUsIHN0YXR1c0NvZGUsIHJlc3BvbnNlU291cmNlfSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0
Q2FzZSh7CisgICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIHRlc3Qo
cmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQ
YWdlKHtpZ25vcmVDYWNoZSwgcmV2YWxpZGF0ZUFsbFJlc291cmNlczogdHJ1ZX0pOworICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgiTG9hZENvbXBsZXRlIikudGhlbigo
ZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHJlc291cmNlID0gbnVsbDsKKyAg
ICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBXSS5uZXR3b3JrTWFuYWdlci5tYWlu
RnJhbWUucmVzb3VyY2VDb2xsZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
cGF0dGVybi50ZXN0KGl0ZW0udXJsKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
c291cmNlID0gaXRlbTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICBpZiAoIXJlc291cmNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmZhaWwoIkZhaWxlZCB0byBmaW5kIHNwZWNpZmljIHJlc291cmNlLiIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RUaGF0KHJlc291cmNlIGluc3RhbmNlb2YgV0kuUmVzb3VyY2UsICJSZXNvdXJj
ZSBzaG91bGQgZXhpc3QuIik7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0RXF1YWwocmVzb3VyY2Uuc3RhdHVzQ29kZSwgc3RhdHVzQ29kZSwgYHN0YXR1c0NvZGUgc2hv
dWxkIGJlICR7c3RhdHVzQ29kZX1gKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RFcXVhbChyZXNvdXJjZS5yZXNwb25zZVNvdXJjZSwgcmVzcG9uc2VTb3VyY2UsIGBy
ZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgJHtTdHJpbmcocmVzcG9uc2VTb3VyY2UpfWApOworICAg
ICAgICAgICAgICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgYWRkUmVsb2FkVGVzdENhc2UoeworICAgICAgICBuYW1l
OiAiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiLAorICAgICAgICBkZXNjcmlw
dGlvbjogIkxvYWQgYSByZXNvdXJjZSBmcm9tIHRoZSBtZW1vcnkgY2FjaGUgYnkgcmVsb2FkaW5n
IHRoaXMgcGFnZS4iLAorICAgICAgICBwYXR0ZXJuOiAvY2FjaGVkLXNjcmlwdFwuanMkLywKKyAg
ICAgICAgaWdub3JlQ2FjaGU6IGZhbHNlLAorICAgICAgICByZXNwb25zZVNvdXJjZTogV0kuUmVz
b3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUsCisgICAgICAgIHN0YXR1c0NvZGU6IDMw
NCwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0IGZvciBg
UmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLjwvcD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
cmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQt
b25seS01NS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1l
eHBpcmVkLW9ubHktNTUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4yMzAyYmY5ZWQwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9y
eS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS01NS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw5IEBACitUZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLgor
CisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5
Q2FjaGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1v
cnlDYWNoZQorUEFTUzogUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LgorUEFTUzogc3RhdHVzQ29kZSBz
aG91bGQgYmUgMzA0CitQQVNTOiByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgU3ltYm9sKG1lbW9y
eS1jYWNoZSkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUt
ZXhwaXJlZC1vbmx5LTU1Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1l
eHBpcmVkLW9ubHktNTUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uM2VlNGUyZTcxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUt
cmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNTUuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2NhY2hlZC1zY3JpcHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorVGVz
dFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQoIkxvYWRDb21wbGV0ZSIpOworCitmdW5jdGlv
biB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAgICBsZXQgc3VpdGUg
PSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJlc291cmNlLlJlc3BvbnNlU291cmNl
Lk1lbW9yeUNhY2hlIik7CisKKyAgICBmdW5jdGlvbiBhZGRSZWxvYWRUZXN0Q2FzZSh7bmFtZSwg
ZGVzY3JpcHRpb24sIGV4cHJlc3Npb24sIHBhdHRlcm4sIGlnbm9yZUNhY2hlLCBzdGF0dXNDb2Rl
LCByZXNwb25zZVNvdXJjZX0pIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAg
ICAgICAgbmFtZSwgZGVzY3JpcHRpb24sCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVj
dCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSh7aWdub3JlQ2Fj
aGUsIHJldmFsaWRhdGVBbGxSZXNvdXJjZXM6IHRydWV9KTsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmF3YWl0RXZlbnQoIkxvYWRDb21wbGV0ZSIpLnRoZW4oKGV2ZW50KSA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9IG51bGw7CisgICAgICAgICAgICAgICAg
ICAgIGZvciAobGV0IGl0ZW0gb2YgV0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1lLnJlc291cmNl
Q29sbGVjdGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChp
dGVtLnVybCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSA9IGl0ZW07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFy
ZXNvdXJjZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJG
YWlsZWQgdG8gZmluZCBzcGVjaWZpYyByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJlamVjdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhh
dChyZXNvdXJjZSBpbnN0YW5jZW9mIFdJLlJlc291cmNlLCAiUmVzb3VyY2Ugc2hvdWxkIGV4aXN0
LiIpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291
cmNlLnN0YXR1c0NvZGUsIHN0YXR1c0NvZGUsIGBzdGF0dXNDb2RlIHNob3VsZCBiZSAke3N0YXR1
c0NvZGV9YCk7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwo
cmVzb3VyY2UucmVzcG9uc2VTb3VyY2UsIHJlc3BvbnNlU291cmNlLCBgcmVzcG9uc2VTb3VyY2Ug
c2hvdWxkIGJlICR7U3RyaW5nKHJlc3BvbnNlU291cmNlKX1gKTsKKyAgICAgICAgICAgICAgICB9
KS50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAg
IH0KKworICAgIGFkZFJlbG9hZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlJlc291cmNlLlJl
c3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJMb2FkIGEg
cmVzb3VyY2UgZnJvbSB0aGUgbWVtb3J5IGNhY2hlIGJ5IHJlbG9hZGluZyB0aGlzIHBhZ2UuIiwK
KyAgICAgICAgcGF0dGVybjogL2NhY2hlZC1zY3JpcHRcLmpzJC8sCisgICAgICAgIGlnbm9yZUNh
Y2hlOiBmYWxzZSwKKyAgICAgICAgcmVzcG9uc2VTb3VyY2U6IFdJLlJlc291cmNlLlJlc3BvbnNl
U291cmNlLk1lbW9yeUNhY2hlLAorICAgICAgICBzdGF0dXNDb2RlOiAzMDQsCisgICAgfSk7CisK
KyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdCBmb3IgYFJlc291cmNlLlJlc3Bv
bnNlU291cmNlLk1lbW9yeUNhY2hlYC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3Bv
bnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNTYtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJj
ZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTU2
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjMw
MmJmOWVkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxp
ZGF0ZS1leHBpcmVkLW9ubHktNTYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdCBm
b3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC4KKworCis9PSBSdW5uaW5n
IHRlc3Qgc3VpdGU6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCistLSBSdW5u
aW5nIHRlc3QgY2FzZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKK1BBU1M6
IFJlc291cmNlIHNob3VsZCBleGlzdC4KK1BBU1M6IHN0YXR1c0NvZGUgc2hvdWxkIGJlIDMwNAor
UEFTUzogcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlIFN5bWJvbChtZW1vcnktY2FjaGUpCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3Vy
Y2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS01
Ni5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJj
ZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTU2
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNlZTRlMmU3MTNi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhw
aXJlZC1vbmx5LTU2Lmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9jYWNoZWQtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1Rlc3RQYWdlLmRpc3BhdGNo
RXZlbnRUb0Zyb250ZW5kKCJMb2FkQ29tcGxldGUiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7Cisg
ICAgSW5zcGVjdG9yVGVzdC5kZWJ1ZygpOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVz
dC5jcmVhdGVBc3luY1N1aXRlKCJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIp
OworCisgICAgZnVuY3Rpb24gYWRkUmVsb2FkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBl
eHByZXNzaW9uLCBwYXR0ZXJuLCBpZ25vcmVDYWNoZSwgc3RhdHVzQ29kZSwgcmVzcG9uc2VTb3Vy
Y2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRl
c2NyaXB0aW9uLAorICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoe2lnbm9yZUNhY2hlLCByZXZhbGlkYXRl
QWxsUmVzb3VyY2VzOiB0cnVlfSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hd2Fp
dEV2ZW50KCJMb2FkQ29tcGxldGUiKS50aGVuKChldmVudCkgPT4geworICAgICAgICAgICAgICAg
ICAgICBsZXQgcmVzb3VyY2UgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBp
dGVtIG9mIFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5yZXNvdXJjZUNvbGxlY3Rpb24pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJuLnRlc3QoaXRlbS51cmwpKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSBpdGVtOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2UpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgiRmFpbGVkIHRvIGZpbmQg
c3BlY2lmaWMgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocmVzb3VyY2UgaW5z
dGFuY2VvZiBXSS5SZXNvdXJjZSwgIlJlc291cmNlIHNob3VsZCBleGlzdC4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5zdGF0dXNDb2Rl
LCBzdGF0dXNDb2RlLCBgc3RhdHVzQ29kZSBzaG91bGQgYmUgJHtzdGF0dXNDb2RlfWApOworICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnJlc3Bv
bnNlU291cmNlLCByZXNwb25zZVNvdXJjZSwgYHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSAke1N0
cmluZyhyZXNwb25zZVNvdXJjZSl9YCk7CisgICAgICAgICAgICAgICAgfSkudGhlbihyZXNvbHZl
LCByZWplY3QpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBhZGRS
ZWxvYWRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5N
ZW1vcnlDYWNoZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiTG9hZCBhIHJlc291cmNlIGZyb20g
dGhlIG1lbW9yeSBjYWNoZSBieSByZWxvYWRpbmcgdGhpcyBwYWdlLiIsCisgICAgICAgIHBhdHRl
cm46IC9jYWNoZWQtc2NyaXB0XC5qcyQvLAorICAgICAgICBpZ25vcmVDYWNoZTogZmFsc2UsCisg
ICAgICAgIHJlc3BvbnNlU291cmNlOiBXSS5SZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlD
YWNoZSwKKyAgICAgICAgc3RhdHVzQ29kZTogMzA0LAorICAgIH0pOworCisgICAgc3VpdGUucnVu
VGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1v
cnlDYWNoZWAuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVt
b3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTU3LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291
cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS01Ny1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIzMDJiZjllZDBlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9y
ZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1v
bmx5LTU3LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3QgZm9yIGBSZXNvdXJjZS5S
ZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBS
ZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6
IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCitQQVNTOiBSZXNvdXJjZSBzaG91
bGQgZXhpc3QuCitQQVNTOiBzdGF0dXNDb2RlIHNob3VsZCBiZSAzMDQKK1BBU1M6IHJlc3BvbnNl
U291cmNlIHNob3VsZCBiZSBTeW1ib2wobWVtb3J5LWNhY2hlKQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNv
dXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNTcuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291
cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS01Ny5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZWU0ZTJlNzEzYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2Ut
cmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS01Ny5o
dG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FjaGVkLXNjcmlw
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVu
ZCgiTG9hZENvbXBsZXRlIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRl
c3QuZGVidWcoKTsKKworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNT
dWl0ZSgiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiKTsKKworICAgIGZ1bmN0
aW9uIGFkZFJlbG9hZFRlc3RDYXNlKHtuYW1lLCBkZXNjcmlwdGlvbiwgZXhwcmVzc2lvbiwgcGF0
dGVybiwgaWdub3JlQ2FjaGUsIHN0YXR1c0NvZGUsIHJlc3BvbnNlU291cmNlfSkgeworICAgICAg
ICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKKyAg
ICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5yZWxvYWRQYWdlKHtpZ25vcmVDYWNoZSwgcmV2YWxpZGF0ZUFsbFJlc291cmNlczog
dHJ1ZX0pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgiTG9hZENv
bXBsZXRlIikudGhlbigoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHJlc291
cmNlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBXSS5uZXR3
b3JrTWFuYWdlci5tYWluRnJhbWUucmVzb3VyY2VDb2xsZWN0aW9uKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAocGF0dGVybi50ZXN0KGl0ZW0udXJsKSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlc291cmNlID0gaXRlbTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc291cmNlKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmZhaWwoIkZhaWxlZCB0byBmaW5kIHNwZWNpZmljIHJlc291
cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHJlc291cmNlIGluc3RhbmNlb2YgV0kuUmVz
b3VyY2UsICJSZXNvdXJjZSBzaG91bGQgZXhpc3QuIik7CisgICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uuc3RhdHVzQ29kZSwgc3RhdHVzQ29kZSwg
YHN0YXR1c0NvZGUgc2hvdWxkIGJlICR7c3RhdHVzQ29kZX1gKTsKKyAgICAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5yZXNwb25zZVNvdXJjZSwgcmVz
cG9uc2VTb3VyY2UsIGByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgJHtTdHJpbmcocmVzcG9uc2VT
b3VyY2UpfWApOworICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgYWRkUmVsb2FkVGVzdENhc2Uo
eworICAgICAgICBuYW1lOiAiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiLAor
ICAgICAgICBkZXNjcmlwdGlvbjogIkxvYWQgYSByZXNvdXJjZSBmcm9tIHRoZSBtZW1vcnkgY2Fj
aGUgYnkgcmVsb2FkaW5nIHRoaXMgcGFnZS4iLAorICAgICAgICBwYXR0ZXJuOiAvY2FjaGVkLXNj
cmlwdFwuanMkLywKKyAgICAgICAgaWdub3JlQ2FjaGU6IGZhbHNlLAorICAgICAgICByZXNwb25z
ZVNvdXJjZTogV0kuUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUsCisgICAgICAg
IHN0YXR1c0NvZGU6IDMwNCwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZp
bmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Cis8cD5UZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLjwvcD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZh
bGlkYXRlLWV4cGlyZWQtb25seS01OC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2Fj
aGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNTgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzAyYmY5ZWQwZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9u
c2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS01OC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2Uu
TWVtb3J5Q2FjaGVgLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUmVzb3VyY2UuUmVzcG9u
c2VTb3VyY2UuTWVtb3J5Q2FjaGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBSZXNvdXJjZS5SZXNw
b25zZVNvdXJjZS5NZW1vcnlDYWNoZQorUEFTUzogUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LgorUEFT
Uzogc3RhdHVzQ29kZSBzaG91bGQgYmUgMzA0CitQQVNTOiByZXNwb25zZVNvdXJjZSBzaG91bGQg
YmUgU3ltYm9sKG1lbW9yeS1jYWNoZSkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNh
Y2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTU4Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2Fj
aGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNTguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uM2VlNGUyZTcxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJj
ZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNTguaHRtbApAQCAtMCwwICsx
LDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NhY2hlZC1zY3JpcHQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQoIkxvYWRDb21wbGV0
ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7CisK
KyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJlc291cmNl
LlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIik7CisKKyAgICBmdW5jdGlvbiBhZGRSZWxvYWRU
ZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb24sIHBhdHRlcm4sIGlnbm9yZUNh
Y2hlLCBzdGF0dXNDb2RlLCByZXNwb25zZVNvdXJjZX0pIHsKKyAgICAgICAgc3VpdGUuYWRkVGVz
dENhc2UoeworICAgICAgICAgICAgbmFtZSwgZGVzY3JpcHRpb24sCisgICAgICAgICAgICB0ZXN0
KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2Fk
UGFnZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRhdGVBbGxSZXNvdXJjZXM6IHRydWV9KTsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoIkxvYWRDb21wbGV0ZSIpLnRoZW4o
KGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9IG51bGw7Cisg
ICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgV0kubmV0d29ya01hbmFnZXIubWFp
bkZyYW1lLnJlc291cmNlQ29sbGVjdGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHBhdHRlcm4udGVzdChpdGVtLnVybCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXNvdXJjZSA9IGl0ZW07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCFyZXNvdXJjZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5mYWlsKCJGYWlsZWQgdG8gZmluZCBzcGVjaWZpYyByZXNvdXJjZS4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJlamVjdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0VGhhdChyZXNvdXJjZSBpbnN0YW5jZW9mIFdJLlJlc291cmNlLCAiUmVzb3Vy
Y2Ugc2hvdWxkIGV4aXN0LiIpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1c0NvZGUsIHN0YXR1c0NvZGUsIGBzdGF0dXNDb2RlIHNo
b3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0RXF1YWwocmVzb3VyY2UucmVzcG9uc2VTb3VyY2UsIHJlc3BvbnNlU291cmNlLCBg
cmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlICR7U3RyaW5nKHJlc3BvbnNlU291cmNlKX1gKTsKKyAg
ICAgICAgICAgICAgICB9KS50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0pOworICAgIH0KKworICAgIGFkZFJlbG9hZFRlc3RDYXNlKHsKKyAgICAgICAgbmFt
ZTogIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIiwKKyAgICAgICAgZGVzY3Jp
cHRpb246ICJMb2FkIGEgcmVzb3VyY2UgZnJvbSB0aGUgbWVtb3J5IGNhY2hlIGJ5IHJlbG9hZGlu
ZyB0aGlzIHBhZ2UuIiwKKyAgICAgICAgcGF0dGVybjogL2NhY2hlZC1zY3JpcHRcLmpzJC8sCisg
ICAgICAgIGlnbm9yZUNhY2hlOiBmYWxzZSwKKyAgICAgICAgcmVzcG9uc2VTb3VyY2U6IFdJLlJl
c291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlLAorICAgICAgICBzdGF0dXNDb2RlOiAz
MDQsCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdCBmb3Ig
YFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC48L3A+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVk
LW9ubHktNTktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUt
ZXhwaXJlZC1vbmx5LTU5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1v
cnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNTktZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsOSBAQAorVGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC4K
KworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9y
eUNhY2hlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVt
b3J5Q2FjaGUKK1BBU1M6IFJlc291cmNlIHNob3VsZCBleGlzdC4KK1BBU1M6IHN0YXR1c0NvZGUg
c2hvdWxkIGJlIDMwNAorUEFTUzogcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlIFN5bWJvbChtZW1v
cnktY2FjaGUpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRl
LWV4cGlyZWQtb25seS01OS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUt
ZXhwaXJlZC1vbmx5LTU5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hl
LXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTU5Lmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9jYWNoZWQtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1Rl
c3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5kKCJMb2FkQ29tcGxldGUiKTsKKworZnVuY3Rp
b24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5kZWJ1ZygpOworCisgICAgbGV0IHN1aXRl
ID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJSZXNvdXJjZS5SZXNwb25zZVNvdXJj
ZS5NZW1vcnlDYWNoZSIpOworCisgICAgZnVuY3Rpb24gYWRkUmVsb2FkVGVzdENhc2Uoe25hbWUs
IGRlc2NyaXB0aW9uLCBleHByZXNzaW9uLCBwYXR0ZXJuLCBpZ25vcmVDYWNoZSwgc3RhdHVzQ29k
ZSwgcmVzcG9uc2VTb3VyY2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAg
ICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWpl
Y3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoe2lnbm9yZUNh
Y2hlLCByZXZhbGlkYXRlQWxsUmVzb3VyY2VzOiB0cnVlfSk7CisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJMb2FkQ29tcGxldGUiKS50aGVuKChldmVudCkgPT4gewor
ICAgICAgICAgICAgICAgICAgICBsZXQgcmVzb3VyY2UgPSBudWxsOworICAgICAgICAgICAgICAg
ICAgICBmb3IgKGxldCBpdGVtIG9mIFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5yZXNvdXJj
ZUNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJuLnRlc3Qo
aXRlbS51cmwpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSBpdGVt
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgh
cmVzb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgi
RmFpbGVkIHRvIGZpbmQgc3BlY2lmaWMgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICByZWplY3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRo
YXQocmVzb3VyY2UgaW5zdGFuY2VvZiBXSS5SZXNvdXJjZSwgIlJlc291cmNlIHNob3VsZCBleGlz
dC4iKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNv
dXJjZS5zdGF0dXNDb2RlLCBzdGF0dXNDb2RlLCBgc3RhdHVzQ29kZSBzaG91bGQgYmUgJHtzdGF0
dXNDb2RlfWApOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFs
KHJlc291cmNlLnJlc3BvbnNlU291cmNlLCByZXNwb25zZVNvdXJjZSwgYHJlc3BvbnNlU291cmNl
IHNob3VsZCBiZSAke1N0cmluZyhyZXNwb25zZVNvdXJjZSl9YCk7CisgICAgICAgICAgICAgICAg
fSkudGhlbihyZXNvbHZlLCByZWplY3QpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAg
ICB9CisKKyAgICBhZGRSZWxvYWRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJSZXNvdXJjZS5S
ZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiTG9hZCBh
IHJlc291cmNlIGZyb20gdGhlIG1lbW9yeSBjYWNoZSBieSByZWxvYWRpbmcgdGhpcyBwYWdlLiIs
CisgICAgICAgIHBhdHRlcm46IC9jYWNoZWQtc2NyaXB0XC5qcyQvLAorICAgICAgICBpZ25vcmVD
YWNoZTogZmFsc2UsCisgICAgICAgIHJlc3BvbnNlU291cmNlOiBXSS5SZXNvdXJjZS5SZXNwb25z
ZVNvdXJjZS5NZW1vcnlDYWNoZSwKKyAgICAgICAgc3RhdHVzQ29kZTogMzA0LAorICAgIH0pOwor
CisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9yIGBSZXNvdXJjZS5SZXNw
b25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNw
b25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTYtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJj
ZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTYt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzAy
YmY5ZWQwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlk
YXRlLWV4cGlyZWQtb25seS02LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3QgZm9y
IGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuCisKKworPT0gUnVubmluZyB0
ZXN0IHN1aXRlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCitQQVNTOiBS
ZXNvdXJjZSBzaG91bGQgZXhpc3QuCitQQVNTOiBzdGF0dXNDb2RlIHNob3VsZCBiZSAzMDQKK1BB
U1M6IHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSBTeW1ib2wobWVtb3J5LWNhY2hlKQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNl
LXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNi5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1y
ZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTYuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2VlNGUyZTcxM2IKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVk
LW9ubHktNi5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2Fj
aGVkLXNjcmlwdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2luc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitUZXN0UGFnZS5kaXNwYXRjaEV2ZW50
VG9Gcm9udGVuZCgiTG9hZENvbXBsZXRlIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIElu
c3BlY3RvclRlc3QuZGVidWcoKTsKKworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3Jl
YXRlQXN5bmNTdWl0ZSgiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiKTsKKwor
ICAgIGZ1bmN0aW9uIGFkZFJlbG9hZFRlc3RDYXNlKHtuYW1lLCBkZXNjcmlwdGlvbiwgZXhwcmVz
c2lvbiwgcGF0dGVybiwgaWdub3JlQ2FjaGUsIHN0YXR1c0NvZGUsIHJlc3BvbnNlU291cmNlfSkg
eworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLCBkZXNjcmlw
dGlvbiwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHtpZ25vcmVDYWNoZSwgcmV2YWxpZGF0ZUFsbFJl
c291cmNlczogdHJ1ZX0pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRFdmVu
dCgiTG9hZENvbXBsZXRlIikudGhlbigoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAg
bGV0IHJlc291cmNlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBv
ZiBXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUucmVzb3VyY2VDb2xsZWN0aW9uKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAocGF0dGVybi50ZXN0KGl0ZW0udXJsKSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlID0gaXRlbTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc291cmNlKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZhaWwoIkZhaWxlZCB0byBmaW5kIHNwZWNp
ZmljIHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHJlc291cmNlIGluc3RhbmNl
b2YgV0kuUmVzb3VyY2UsICJSZXNvdXJjZSBzaG91bGQgZXhpc3QuIik7CisgICAgICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uuc3RhdHVzQ29kZSwgc3Rh
dHVzQ29kZSwgYHN0YXR1c0NvZGUgc2hvdWxkIGJlICR7c3RhdHVzQ29kZX1gKTsKKyAgICAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5yZXNwb25zZVNv
dXJjZSwgcmVzcG9uc2VTb3VyY2UsIGByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgJHtTdHJpbmco
cmVzcG9uc2VTb3VyY2UpfWApOworICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVq
ZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgYWRkUmVsb2Fk
VGVzdENhc2UoeworICAgICAgICBuYW1lOiAiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5
Q2FjaGUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkxvYWQgYSByZXNvdXJjZSBmcm9tIHRoZSBt
ZW1vcnkgY2FjaGUgYnkgcmVsb2FkaW5nIHRoaXMgcGFnZS4iLAorICAgICAgICBwYXR0ZXJuOiAv
Y2FjaGVkLXNjcmlwdFwuanMkLywKKyAgICAgICAgaWdub3JlQ2FjaGU6IGZhbHNlLAorICAgICAg
ICByZXNwb25zZVNvdXJjZTogV0kuUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUs
CisgICAgICAgIHN0YXR1c0NvZGU6IDMwNCwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RD
YXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Cis8cD5UZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2Fj
aGVgLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1j
YWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS02MC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1t
ZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNjAtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzAyYmY5ZWQwZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3Vy
Y2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS02
MC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9u
c2VTb3VyY2UuTWVtb3J5Q2FjaGVgLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUmVzb3Vy
Y2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBSZXNv
dXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorUEFTUzogUmVzb3VyY2Ugc2hvdWxkIGV4
aXN0LgorUEFTUzogc3RhdHVzQ29kZSBzaG91bGQgYmUgMzA0CitQQVNTOiByZXNwb25zZVNvdXJj
ZSBzaG91bGQgYmUgU3ltYm9sKG1lbW9yeS1jYWNoZSkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2Ut
bWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTYwLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1t
ZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNjAuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2VlNGUyZTcxM2IKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3Bv
bnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNjAuaHRtbApA
QCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NhY2hlZC1zY3JpcHQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQoIkxv
YWRDb21wbGV0ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmRl
YnVnKCk7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUo
IlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIik7CisKKyAgICBmdW5jdGlvbiBh
ZGRSZWxvYWRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb24sIHBhdHRlcm4s
IGlnbm9yZUNhY2hlLCBzdGF0dXNDb2RlLCByZXNwb25zZVNvdXJjZX0pIHsKKyAgICAgICAgc3Vp
dGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwgZGVzY3JpcHRpb24sCisgICAgICAg
ICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QucmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRhdGVBbGxSZXNvdXJjZXM6IHRydWV9
KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoIkxvYWRDb21wbGV0
ZSIpLnRoZW4oKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9
IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgV0kubmV0d29ya01h
bmFnZXIubWFpbkZyYW1lLnJlc291cmNlQ29sbGVjdGlvbikgeworICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKHBhdHRlcm4udGVzdChpdGVtLnVybCkpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXNvdXJjZSA9IGl0ZW07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQgdG8gZmluZCBzcGVjaWZpYyByZXNvdXJjZS4i
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXNvdXJjZSBpbnN0YW5jZW9mIFdJLlJlc291cmNl
LCAiUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LiIpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1c0NvZGUsIHN0YXR1c0NvZGUsIGBzdGF0
dXNDb2RlIHNob3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7CisgICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2UucmVzcG9uc2VTb3VyY2UsIHJlc3BvbnNl
U291cmNlLCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlICR7U3RyaW5nKHJlc3BvbnNlU291cmNl
KX1gKTsKKyAgICAgICAgICAgICAgICB9KS50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIGFkZFJlbG9hZFRlc3RDYXNlKHsKKyAg
ICAgICAgbmFtZTogIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIiwKKyAgICAg
ICAgZGVzY3JpcHRpb246ICJMb2FkIGEgcmVzb3VyY2UgZnJvbSB0aGUgbWVtb3J5IGNhY2hlIGJ5
IHJlbG9hZGluZyB0aGlzIHBhZ2UuIiwKKyAgICAgICAgcGF0dGVybjogL2NhY2hlZC1zY3JpcHRc
LmpzJC8sCisgICAgICAgIGlnbm9yZUNhY2hlOiBmYWxzZSwKKyAgICAgICAgcmVzcG9uc2VTb3Vy
Y2U6IFdJLlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlLAorICAgICAgICBzdGF0
dXNDb2RlOiAzMDQsCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2go
KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+
VGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC48L3A+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0
ZS1leHBpcmVkLW9ubHktNjEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJl
dmFsaWRhdGUtZXhwaXJlZC1vbmx5LTYxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNv
dXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNjEtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsOSBAQAorVGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9y
eUNhY2hlYC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFJlc291cmNlLlJlc3BvbnNlU291
cmNlLk1lbW9yeUNhY2hlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUmVzb3VyY2UuUmVzcG9uc2VT
b3VyY2UuTWVtb3J5Q2FjaGUKK1BBU1M6IFJlc291cmNlIHNob3VsZCBleGlzdC4KK1BBU1M6IHN0
YXR1c0NvZGUgc2hvdWxkIGJlIDMwNAorUEFTUzogcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlIFN5
bWJvbChtZW1vcnktY2FjaGUpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1y
ZXZhbGlkYXRlLWV4cGlyZWQtb25seS02MS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJl
dmFsaWRhdGUtZXhwaXJlZC1vbmx5LTYxLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVt
b3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTYxLmh0bWwKQEAgLTAsMCArMSw1OCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jYWNoZWQtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK1Rlc3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5kKCJMb2FkQ29tcGxldGUiKTsK
KworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5kZWJ1ZygpOworCisgICAg
bGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJSZXNvdXJjZS5SZXNw
b25zZVNvdXJjZS5NZW1vcnlDYWNoZSIpOworCisgICAgZnVuY3Rpb24gYWRkUmVsb2FkVGVzdENh
c2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9uLCBwYXR0ZXJuLCBpZ25vcmVDYWNoZSwg
c3RhdHVzQ29kZSwgcmVzcG9uc2VTb3VyY2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNl
KHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgdGVzdChyZXNv
bHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uo
e2lnbm9yZUNhY2hlLCByZXZhbGlkYXRlQWxsUmVzb3VyY2VzOiB0cnVlfSk7CisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJMb2FkQ29tcGxldGUiKS50aGVuKChldmVu
dCkgPT4geworICAgICAgICAgICAgICAgICAgICBsZXQgcmVzb3VyY2UgPSBudWxsOworICAgICAg
ICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFt
ZS5yZXNvdXJjZUNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXR0
ZXJuLnRlc3QoaXRlbS51cmwpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3Vy
Y2UgPSBpdGVtOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIGlmICghcmVzb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZmFpbCgiRmFpbGVkIHRvIGZpbmQgc3BlY2lmaWMgcmVzb3VyY2UuIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICByZWplY3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdFRoYXQocmVzb3VyY2UgaW5zdGFuY2VvZiBXSS5SZXNvdXJjZSwgIlJlc291cmNlIHNo
b3VsZCBleGlzdC4iKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RF
cXVhbChyZXNvdXJjZS5zdGF0dXNDb2RlLCBzdGF0dXNDb2RlLCBgc3RhdHVzQ29kZSBzaG91bGQg
YmUgJHtzdGF0dXNDb2RlfWApOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdEVxdWFsKHJlc291cmNlLnJlc3BvbnNlU291cmNlLCByZXNwb25zZVNvdXJjZSwgYHJlc3Bv
bnNlU291cmNlIHNob3VsZCBiZSAke1N0cmluZyhyZXNwb25zZVNvdXJjZSl9YCk7CisgICAgICAg
ICAgICAgICAgfSkudGhlbihyZXNvbHZlLCByZWplY3QpOworICAgICAgICAgICAgfQorICAgICAg
ICB9KTsKKyAgICB9CisKKyAgICBhZGRSZWxvYWRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJS
ZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIsCisgICAgICAgIGRlc2NyaXB0aW9u
OiAiTG9hZCBhIHJlc291cmNlIGZyb20gdGhlIG1lbW9yeSBjYWNoZSBieSByZWxvYWRpbmcgdGhp
cyBwYWdlLiIsCisgICAgICAgIHBhdHRlcm46IC9jYWNoZWQtc2NyaXB0XC5qcyQvLAorICAgICAg
ICBpZ25vcmVDYWNoZTogZmFsc2UsCisgICAgICAgIHJlc3BvbnNlU291cmNlOiBXSS5SZXNvdXJj
ZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSwKKyAgICAgICAgc3RhdHVzQ29kZTogMzA0LAor
ICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9yIGBSZXNv
dXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuPC9wPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNv
dXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5
LTYyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGly
ZWQtb25seS02Mi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjIzMDJiZjllZDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNh
Y2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTYyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkg
QEAKK1Rlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuCisKKwor
PT0gUnVubmluZyB0ZXN0IHN1aXRlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNo
ZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNh
Y2hlCitQQVNTOiBSZXNvdXJjZSBzaG91bGQgZXhpc3QuCitQQVNTOiBzdGF0dXNDb2RlIHNob3Vs
ZCBiZSAzMDQKK1BBU1M6IHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSBTeW1ib2wobWVtb3J5LWNh
Y2hlKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBp
cmVkLW9ubHktNjIuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGly
ZWQtb25seS02Mi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4z
ZWU0ZTJlNzEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZh
bGlkYXRlLWV4cGlyZWQtb25seS02Mi5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvY2FjaGVkLXNjcmlwdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitUZXN0UGFn
ZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiTG9hZENvbXBsZXRlIik7CisKK2Z1bmN0aW9uIHRl
c3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZGVidWcoKTsKKworICAgIGxldCBzdWl0ZSA9IElu
c3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVt
b3J5Q2FjaGUiKTsKKworICAgIGZ1bmN0aW9uIGFkZFJlbG9hZFRlc3RDYXNlKHtuYW1lLCBkZXNj
cmlwdGlvbiwgZXhwcmVzc2lvbiwgcGF0dGVybiwgaWdub3JlQ2FjaGUsIHN0YXR1c0NvZGUsIHJl
c3BvbnNlU291cmNlfSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAg
ICBuYW1lLCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHtpZ25vcmVDYWNoZSwg
cmV2YWxpZGF0ZUFsbFJlc291cmNlczogdHJ1ZX0pOworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXdhaXRFdmVudCgiTG9hZENvbXBsZXRlIikudGhlbigoZXZlbnQpID0+IHsKKyAgICAg
ICAgICAgICAgICAgICAgbGV0IHJlc291cmNlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAg
Zm9yIChsZXQgaXRlbSBvZiBXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUucmVzb3VyY2VDb2xs
ZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGF0dGVybi50ZXN0KGl0ZW0u
dXJsKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlID0gaXRlbTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc291
cmNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZhaWwoIkZhaWxl
ZCB0byBmaW5kIHNwZWNpZmljIHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAg
cmVqZWN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHJl
c291cmNlIGluc3RhbmNlb2YgV0kuUmVzb3VyY2UsICJSZXNvdXJjZSBzaG91bGQgZXhpc3QuIik7
CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uu
c3RhdHVzQ29kZSwgc3RhdHVzQ29kZSwgYHN0YXR1c0NvZGUgc2hvdWxkIGJlICR7c3RhdHVzQ29k
ZX1gKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNv
dXJjZS5yZXNwb25zZVNvdXJjZSwgcmVzcG9uc2VTb3VyY2UsIGByZXNwb25zZVNvdXJjZSBzaG91
bGQgYmUgJHtTdHJpbmcocmVzcG9uc2VTb3VyY2UpfWApOworICAgICAgICAgICAgICAgIH0pLnRo
ZW4ocmVzb2x2ZSwgcmVqZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQor
CisgICAgYWRkUmVsb2FkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiUmVzb3VyY2UuUmVzcG9u
c2VTb3VyY2UuTWVtb3J5Q2FjaGUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkxvYWQgYSByZXNv
dXJjZSBmcm9tIHRoZSBtZW1vcnkgY2FjaGUgYnkgcmVsb2FkaW5nIHRoaXMgcGFnZS4iLAorICAg
ICAgICBwYXR0ZXJuOiAvY2FjaGVkLXNjcmlwdFwuanMkLywKKyAgICAgICAgaWdub3JlQ2FjaGU6
IGZhbHNlLAorICAgICAgICByZXNwb25zZVNvdXJjZTogV0kuUmVzb3VyY2UuUmVzcG9uc2VTb3Vy
Y2UuTWVtb3J5Q2FjaGUsCisgICAgICAgIHN0YXR1c0NvZGU6IDMwNCwKKyAgICB9KTsKKworICAg
IHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VT
b3VyY2UuTWVtb3J5Q2FjaGVgLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Ut
c291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS02My1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJl
c3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNjMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzAyYmY5
ZWQwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRl
LWV4cGlyZWQtb25seS02My1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0IGZvciBg
UmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLgorCisKKz09IFJ1bm5pbmcgdGVz
dCBzdWl0ZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorUEFTUzogUmVz
b3VyY2Ugc2hvdWxkIGV4aXN0LgorUEFTUzogc3RhdHVzQ29kZSBzaG91bGQgYmUgMzA0CitQQVNT
OiByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgU3ltYm9sKG1lbW9yeS1jYWNoZSkKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1y
ZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTYzLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJl
c3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNjMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2VlNGUyZTcxM2IKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVk
LW9ubHktNjMuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Nh
Y2hlZC1zY3JpcHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9pbnNw
ZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorVGVzdFBhZ2UuZGlzcGF0Y2hFdmVu
dFRvRnJvbnRlbmQoIkxvYWRDb21wbGV0ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJ
bnNwZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNy
ZWF0ZUFzeW5jU3VpdGUoIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIik7CisK
KyAgICBmdW5jdGlvbiBhZGRSZWxvYWRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJl
c3Npb24sIHBhdHRlcm4sIGlnbm9yZUNhY2hlLCBzdGF0dXNDb2RlLCByZXNwb25zZVNvdXJjZX0p
IHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwgZGVzY3Jp
cHRpb24sCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRhdGVBbGxS
ZXNvdXJjZXM6IHRydWV9KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0RXZl
bnQoIkxvYWRDb21wbGV0ZSIpLnRoZW4oKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAg
IGxldCByZXNvdXJjZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0g
b2YgV0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1lLnJlc291cmNlQ29sbGVjdGlvbikgeworICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChpdGVtLnVybCkpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSA9IGl0ZW07CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQgdG8gZmluZCBzcGVj
aWZpYyByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgpOworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXNvdXJjZSBpbnN0YW5j
ZW9mIFdJLlJlc291cmNlLCAiUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LiIpOworICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1c0NvZGUsIHN0
YXR1c0NvZGUsIGBzdGF0dXNDb2RlIHNob3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7CisgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2UucmVzcG9uc2VT
b3VyY2UsIHJlc3BvbnNlU291cmNlLCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlICR7U3RyaW5n
KHJlc3BvbnNlU291cmNlKX1gKTsKKyAgICAgICAgICAgICAgICB9KS50aGVuKHJlc29sdmUsIHJl
amVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIGFkZFJlbG9h
ZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9y
eUNhY2hlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJMb2FkIGEgcmVzb3VyY2UgZnJvbSB0aGUg
bWVtb3J5IGNhY2hlIGJ5IHJlbG9hZGluZyB0aGlzIHBhZ2UuIiwKKyAgICAgICAgcGF0dGVybjog
L2NhY2hlZC1zY3JpcHRcLmpzJC8sCisgICAgICAgIGlnbm9yZUNhY2hlOiBmYWxzZSwKKyAgICAg
ICAgcmVzcG9uc2VTb3VyY2U6IFdJLlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hl
LAorICAgICAgICBzdGF0dXNDb2RlOiAzMDQsCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0
Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgorPHA+VGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNh
Y2hlYC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnkt
Y2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNjQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2Ut
bWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTY0LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291
cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHkt
NjQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdCBmb3IgYFJlc291cmNlLlJlc3Bv
bnNlU291cmNlLk1lbW9yeUNhY2hlYC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFJlc291
cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUmVz
b3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKK1BBU1M6IFJlc291cmNlIHNob3VsZCBl
eGlzdC4KK1BBU1M6IHN0YXR1c0NvZGUgc2hvdWxkIGJlIDMwNAorUEFTUzogcmVzcG9uc2VTb3Vy
Y2Ugc2hvdWxkIGJlIFN5bWJvbChtZW1vcnktY2FjaGUpCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNl
LW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS02NC5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2Ut
bWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTY0Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNw
b25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTY0Lmh0bWwK
QEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jYWNoZWQtc2NyaXB0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK1Rlc3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5kKCJM
b2FkQ29tcGxldGUiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5k
ZWJ1ZygpOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRl
KCJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIpOworCisgICAgZnVuY3Rpb24g
YWRkUmVsb2FkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9uLCBwYXR0ZXJu
LCBpZ25vcmVDYWNoZSwgc3RhdHVzQ29kZSwgcmVzcG9uc2VTb3VyY2V9KSB7CisgICAgICAgIHN1
aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAg
ICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LnJlbG9hZFBhZ2Uoe2lnbm9yZUNhY2hlLCByZXZhbGlkYXRlQWxsUmVzb3VyY2VzOiB0cnVl
fSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJMb2FkQ29tcGxl
dGUiKS50aGVuKChldmVudCkgPT4geworICAgICAgICAgICAgICAgICAgICBsZXQgcmVzb3VyY2Ug
PSBudWxsOworICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIFdJLm5ldHdvcmtN
YW5hZ2VyLm1haW5GcmFtZS5yZXNvdXJjZUNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChwYXR0ZXJuLnRlc3QoaXRlbS51cmwpKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVzb3VyY2UgPSBpdGVtOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZmFpbCgiRmFpbGVkIHRvIGZpbmQgc3BlY2lmaWMgcmVzb3VyY2Uu
Iik7CisgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocmVzb3VyY2UgaW5zdGFuY2VvZiBXSS5SZXNvdXJj
ZSwgIlJlc291cmNlIHNob3VsZCBleGlzdC4iKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5zdGF0dXNDb2RlLCBzdGF0dXNDb2RlLCBgc3Rh
dHVzQ29kZSBzaG91bGQgYmUgJHtzdGF0dXNDb2RlfWApOworICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnJlc3BvbnNlU291cmNlLCByZXNwb25z
ZVNvdXJjZSwgYHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSAke1N0cmluZyhyZXNwb25zZVNvdXJj
ZSl9YCk7CisgICAgICAgICAgICAgICAgfSkudGhlbihyZXNvbHZlLCByZWplY3QpOworICAgICAg
ICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBhZGRSZWxvYWRUZXN0Q2FzZSh7Cisg
ICAgICAgIG5hbWU6ICJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIsCisgICAg
ICAgIGRlc2NyaXB0aW9uOiAiTG9hZCBhIHJlc291cmNlIGZyb20gdGhlIG1lbW9yeSBjYWNoZSBi
eSByZWxvYWRpbmcgdGhpcyBwYWdlLiIsCisgICAgICAgIHBhdHRlcm46IC9jYWNoZWQtc2NyaXB0
XC5qcyQvLAorICAgICAgICBpZ25vcmVDYWNoZTogZmFsc2UsCisgICAgICAgIHJlc3BvbnNlU291
cmNlOiBXSS5SZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSwKKyAgICAgICAgc3Rh
dHVzQ29kZTogMzA0LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNo
KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxw
PlRlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuPC9wPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRh
dGUtZXhwaXJlZC1vbmx5LTY1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1y
ZXZhbGlkYXRlLWV4cGlyZWQtb25seS02NS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIzMDJiZjllZDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1z
b3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTY1LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDkgQEAKK1Rlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1v
cnlDYWNoZWAuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBSZXNvdXJjZS5SZXNwb25zZVNv
dXJjZS5NZW1vcnlDYWNoZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFJlc291cmNlLlJlc3BvbnNl
U291cmNlLk1lbW9yeUNhY2hlCitQQVNTOiBSZXNvdXJjZSBzaG91bGQgZXhpc3QuCitQQVNTOiBz
dGF0dXNDb2RlIHNob3VsZCBiZSAzMDQKK1BBU1M6IHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSBT
eW1ib2wobWVtb3J5LWNhY2hlKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUt
cmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNjUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1y
ZXZhbGlkYXRlLWV4cGlyZWQtb25seS02NS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi4zZWU0ZTJlNzEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1l
bW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS02NS5odG1sCkBAIC0wLDAgKzEsNTgg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FjaGVkLXNjcmlwdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CitUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiTG9hZENvbXBsZXRlIik7
CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZGVidWcoKTsKKworICAg
IGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUmVzb3VyY2UuUmVz
cG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiKTsKKworICAgIGZ1bmN0aW9uIGFkZFJlbG9hZFRlc3RD
YXNlKHtuYW1lLCBkZXNjcmlwdGlvbiwgZXhwcmVzc2lvbiwgcGF0dGVybiwgaWdub3JlQ2FjaGUs
IHN0YXR1c0NvZGUsIHJlc3BvbnNlU291cmNlfSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2Fz
ZSh7CisgICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIHRlc3QocmVz
b2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdl
KHtpZ25vcmVDYWNoZSwgcmV2YWxpZGF0ZUFsbFJlc291cmNlczogdHJ1ZX0pOworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgiTG9hZENvbXBsZXRlIikudGhlbigoZXZl
bnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHJlc291cmNlID0gbnVsbDsKKyAgICAg
ICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJh
bWUucmVzb3VyY2VDb2xsZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGF0
dGVybi50ZXN0KGl0ZW0udXJsKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291
cmNlID0gaXRlbTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICBpZiAoIXJlc291cmNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmZhaWwoIkZhaWxlZCB0byBmaW5kIHNwZWNpZmljIHJlc291cmNlLiIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgcmVqZWN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RUaGF0KHJlc291cmNlIGluc3RhbmNlb2YgV0kuUmVzb3VyY2UsICJSZXNvdXJjZSBz
aG91bGQgZXhpc3QuIik7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0
RXF1YWwocmVzb3VyY2Uuc3RhdHVzQ29kZSwgc3RhdHVzQ29kZSwgYHN0YXR1c0NvZGUgc2hvdWxk
IGJlICR7c3RhdHVzQ29kZX1gKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFcXVhbChyZXNvdXJjZS5yZXNwb25zZVNvdXJjZSwgcmVzcG9uc2VTb3VyY2UsIGByZXNw
b25zZVNvdXJjZSBzaG91bGQgYmUgJHtTdHJpbmcocmVzcG9uc2VTb3VyY2UpfWApOworICAgICAg
ICAgICAgICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfSk7CisgICAgfQorCisgICAgYWRkUmVsb2FkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAi
UmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiLAorICAgICAgICBkZXNjcmlwdGlv
bjogIkxvYWQgYSByZXNvdXJjZSBmcm9tIHRoZSBtZW1vcnkgY2FjaGUgYnkgcmVsb2FkaW5nIHRo
aXMgcGFnZS4iLAorICAgICAgICBwYXR0ZXJuOiAvY2FjaGVkLXNjcmlwdFwuanMkLywKKyAgICAg
ICAgaWdub3JlQ2FjaGU6IGZhbHNlLAorICAgICAgICByZXNwb25zZVNvdXJjZTogV0kuUmVzb3Vy
Y2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUsCisgICAgICAgIHN0YXR1c0NvZGU6IDMwNCwK
KyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0IGZvciBgUmVz
b3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVz
b3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25s
eS02Ni1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBp
cmVkLW9ubHktNjYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi4yMzAyYmY5ZWQwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1j
YWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS02Ni1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5
IEBACitUZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLgorCisK
Kz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2Fj
aGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlD
YWNoZQorUEFTUzogUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LgorUEFTUzogc3RhdHVzQ29kZSBzaG91
bGQgYmUgMzA0CitQQVNTOiByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgU3ltYm9sKG1lbW9yeS1j
YWNoZSkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhw
aXJlZC1vbmx5LTY2Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBp
cmVkLW9ubHktNjYuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
M2VlNGUyZTcxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2
YWxpZGF0ZS1leHBpcmVkLW9ubHktNjYuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2NhY2hlZC1zY3JpcHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorVGVzdFBh
Z2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQoIkxvYWRDb21wbGV0ZSIpOworCitmdW5jdGlvbiB0
ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAgICBsZXQgc3VpdGUgPSBJ
bnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1l
bW9yeUNhY2hlIik7CisKKyAgICBmdW5jdGlvbiBhZGRSZWxvYWRUZXN0Q2FzZSh7bmFtZSwgZGVz
Y3JpcHRpb24sIGV4cHJlc3Npb24sIHBhdHRlcm4sIGlnbm9yZUNhY2hlLCBzdGF0dXNDb2RlLCBy
ZXNwb25zZVNvdXJjZX0pIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAg
ICAgbmFtZSwgZGVzY3JpcHRpb24sCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkg
eworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUs
IHJldmFsaWRhdGVBbGxSZXNvdXJjZXM6IHRydWV9KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmF3YWl0RXZlbnQoIkxvYWRDb21wbGV0ZSIpLnRoZW4oKGV2ZW50KSA9PiB7CisgICAg
ICAgICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAg
IGZvciAobGV0IGl0ZW0gb2YgV0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1lLnJlc291cmNlQ29s
bGVjdGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChpdGVt
LnVybCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSA9IGl0ZW07Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNv
dXJjZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJGYWls
ZWQgdG8gZmluZCBzcGVjaWZpYyByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJlamVjdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChy
ZXNvdXJjZSBpbnN0YW5jZW9mIFdJLlJlc291cmNlLCAiUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LiIp
OworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNl
LnN0YXR1c0NvZGUsIHN0YXR1c0NvZGUsIGBzdGF0dXNDb2RlIHNob3VsZCBiZSAke3N0YXR1c0Nv
ZGV9YCk7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVz
b3VyY2UucmVzcG9uc2VTb3VyY2UsIHJlc3BvbnNlU291cmNlLCBgcmVzcG9uc2VTb3VyY2Ugc2hv
dWxkIGJlICR7U3RyaW5nKHJlc3BvbnNlU291cmNlKX1gKTsKKyAgICAgICAgICAgICAgICB9KS50
aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0K
KworICAgIGFkZFJlbG9hZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlJlc291cmNlLlJlc3Bv
bnNlU291cmNlLk1lbW9yeUNhY2hlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJMb2FkIGEgcmVz
b3VyY2UgZnJvbSB0aGUgbWVtb3J5IGNhY2hlIGJ5IHJlbG9hZGluZyB0aGlzIHBhZ2UuIiwKKyAg
ICAgICAgcGF0dGVybjogL2NhY2hlZC1zY3JpcHRcLmpzJC8sCisgICAgICAgIGlnbm9yZUNhY2hl
OiBmYWxzZSwKKyAgICAgICAgcmVzcG9uc2VTb3VyY2U6IFdJLlJlc291cmNlLlJlc3BvbnNlU291
cmNlLk1lbW9yeUNhY2hlLAorICAgICAgICBzdGF0dXNDb2RlOiAzMDQsCisgICAgfSk7CisKKyAg
ICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNl
U291cmNlLk1lbW9yeUNhY2hlYC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNl
LXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNjctZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1y
ZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTY3LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjMwMmJm
OWVkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0
ZS1leHBpcmVkLW9ubHktNjctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdCBmb3Ig
YFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC4KKworCis9PSBSdW5uaW5nIHRl
c3Qgc3VpdGU6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKK1BBU1M6IFJl
c291cmNlIHNob3VsZCBleGlzdC4KK1BBU1M6IHN0YXR1c0NvZGUgc2hvdWxkIGJlIDMwNAorUEFT
UzogcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlIFN5bWJvbChtZW1vcnktY2FjaGUpCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2Ut
cmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS02Ny5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1y
ZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTY3Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNlZTRlMmU3MTNiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJl
ZC1vbmx5LTY3Lmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9j
YWNoZWQtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1Rlc3RQYWdlLmRpc3BhdGNoRXZl
bnRUb0Zyb250ZW5kKCJMb2FkQ29tcGxldGUiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAg
SW5zcGVjdG9yVGVzdC5kZWJ1ZygpOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5j
cmVhdGVBc3luY1N1aXRlKCJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIpOwor
CisgICAgZnVuY3Rpb24gYWRkUmVsb2FkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBleHBy
ZXNzaW9uLCBwYXR0ZXJuLCBpZ25vcmVDYWNoZSwgc3RhdHVzQ29kZSwgcmVzcG9uc2VTb3VyY2V9
KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2Ny
aXB0aW9uLAorICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoe2lnbm9yZUNhY2hlLCByZXZhbGlkYXRlQWxs
UmVzb3VyY2VzOiB0cnVlfSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2
ZW50KCJMb2FkQ29tcGxldGUiKS50aGVuKChldmVudCkgPT4geworICAgICAgICAgICAgICAgICAg
ICBsZXQgcmVzb3VyY2UgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVt
IG9mIFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5yZXNvdXJjZUNvbGxlY3Rpb24pIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJuLnRlc3QoaXRlbS51cmwpKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSBpdGVtOworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2UpIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgiRmFpbGVkIHRvIGZpbmQgc3Bl
Y2lmaWMgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocmVzb3VyY2UgaW5zdGFu
Y2VvZiBXSS5SZXNvdXJjZSwgIlJlc291cmNlIHNob3VsZCBleGlzdC4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5zdGF0dXNDb2RlLCBz
dGF0dXNDb2RlLCBgc3RhdHVzQ29kZSBzaG91bGQgYmUgJHtzdGF0dXNDb2RlfWApOworICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnJlc3BvbnNl
U291cmNlLCByZXNwb25zZVNvdXJjZSwgYHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSAke1N0cmlu
ZyhyZXNwb25zZVNvdXJjZSl9YCk7CisgICAgICAgICAgICAgICAgfSkudGhlbihyZXNvbHZlLCBy
ZWplY3QpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBhZGRSZWxv
YWRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1v
cnlDYWNoZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiTG9hZCBhIHJlc291cmNlIGZyb20gdGhl
IG1lbW9yeSBjYWNoZSBieSByZWxvYWRpbmcgdGhpcyBwYWdlLiIsCisgICAgICAgIHBhdHRlcm46
IC9jYWNoZWQtc2NyaXB0XC5qcyQvLAorICAgICAgICBpZ25vcmVDYWNoZTogZmFsc2UsCisgICAg
ICAgIHJlc3BvbnNlU291cmNlOiBXSS5SZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNo
ZSwKKyAgICAgICAgc3RhdHVzQ29kZTogMzA0LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVz
dENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlD
YWNoZWAuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5
LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTY4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNl
LW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS02OC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIzMDJiZjllZDBlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNv
dXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5
LTY4LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3QgZm9yIGBSZXNvdXJjZS5SZXNw
b25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBSZXNv
dXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFJl
c291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCitQQVNTOiBSZXNvdXJjZSBzaG91bGQg
ZXhpc3QuCitQQVNTOiBzdGF0dXNDb2RlIHNob3VsZCBiZSAzMDQKK1BBU1M6IHJlc3BvbnNlU291
cmNlIHNob3VsZCBiZSBTeW1ib2wobWVtb3J5LWNhY2hlKQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJj
ZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNjguaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNl
LW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS02OC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZWU0ZTJlNzEzYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVz
cG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS02OC5odG1s
CkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FjaGVkLXNjcmlwdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CitUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgi
TG9hZENvbXBsZXRlIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3Qu
ZGVidWcoKTsKKworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0
ZSgiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiKTsKKworICAgIGZ1bmN0aW9u
IGFkZFJlbG9hZFRlc3RDYXNlKHtuYW1lLCBkZXNjcmlwdGlvbiwgZXhwcmVzc2lvbiwgcGF0dGVy
biwgaWdub3JlQ2FjaGUsIHN0YXR1c0NvZGUsIHJlc3BvbnNlU291cmNlfSkgeworICAgICAgICBz
dWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKKyAgICAg
ICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5yZWxvYWRQYWdlKHtpZ25vcmVDYWNoZSwgcmV2YWxpZGF0ZUFsbFJlc291cmNlczogdHJ1
ZX0pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgiTG9hZENvbXBs
ZXRlIikudGhlbigoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHJlc291cmNl
ID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBXSS5uZXR3b3Jr
TWFuYWdlci5tYWluRnJhbWUucmVzb3VyY2VDb2xsZWN0aW9uKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAocGF0dGVybi50ZXN0KGl0ZW0udXJsKSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlc291cmNlID0gaXRlbTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc291cmNlKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmZhaWwoIkZhaWxlZCB0byBmaW5kIHNwZWNpZmljIHJlc291cmNl
LiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHJlc291cmNlIGluc3RhbmNlb2YgV0kuUmVzb3Vy
Y2UsICJSZXNvdXJjZSBzaG91bGQgZXhpc3QuIik7CisgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uuc3RhdHVzQ29kZSwgc3RhdHVzQ29kZSwgYHN0
YXR1c0NvZGUgc2hvdWxkIGJlICR7c3RhdHVzQ29kZX1gKTsKKyAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5yZXNwb25zZVNvdXJjZSwgcmVzcG9u
c2VTb3VyY2UsIGByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgJHtTdHJpbmcocmVzcG9uc2VTb3Vy
Y2UpfWApOworICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgYWRkUmVsb2FkVGVzdENhc2Uoewor
ICAgICAgICBuYW1lOiAiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiLAorICAg
ICAgICBkZXNjcmlwdGlvbjogIkxvYWQgYSByZXNvdXJjZSBmcm9tIHRoZSBtZW1vcnkgY2FjaGUg
YnkgcmVsb2FkaW5nIHRoaXMgcGFnZS4iLAorICAgICAgICBwYXR0ZXJuOiAvY2FjaGVkLXNjcmlw
dFwuanMkLywKKyAgICAgICAgaWdub3JlQ2FjaGU6IGZhbHNlLAorICAgICAgICByZXNwb25zZVNv
dXJjZTogV0kuUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUsCisgICAgICAgIHN0
YXR1c0NvZGU6IDMwNCwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlz
aCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8
cD5UZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLjwvcD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlk
YXRlLWV4cGlyZWQtb25seS02OS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUt
cmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNjktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzAyYmY5ZWQwZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Ut
c291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS02OS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw5IEBACitUZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVt
b3J5Q2FjaGVgLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUmVzb3VyY2UuUmVzcG9uc2VT
b3VyY2UuTWVtb3J5Q2FjaGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBSZXNvdXJjZS5SZXNwb25z
ZVNvdXJjZS5NZW1vcnlDYWNoZQorUEFTUzogUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LgorUEFTUzog
c3RhdHVzQ29kZSBzaG91bGQgYmUgMzA0CitQQVNTOiByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUg
U3ltYm9sKG1lbW9yeS1jYWNoZSkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hl
LXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTY5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUt
cmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNjkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uM2VlNGUyZTcxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1t
ZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNjkuaHRtbApAQCAtMCwwICsxLDU4
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NhY2hlZC1zY3JpcHQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQoIkxvYWRDb21wbGV0ZSIp
OworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAg
ICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJlc291cmNlLlJl
c3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIik7CisKKyAgICBmdW5jdGlvbiBhZGRSZWxvYWRUZXN0
Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb24sIHBhdHRlcm4sIGlnbm9yZUNhY2hl
LCBzdGF0dXNDb2RlLCByZXNwb25zZVNvdXJjZX0pIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENh
c2UoeworICAgICAgICAgICAgbmFtZSwgZGVzY3JpcHRpb24sCisgICAgICAgICAgICB0ZXN0KHJl
c29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFn
ZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRhdGVBbGxSZXNvdXJjZXM6IHRydWV9KTsKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoIkxvYWRDb21wbGV0ZSIpLnRoZW4oKGV2
ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9IG51bGw7CisgICAg
ICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgV0kubmV0d29ya01hbmFnZXIubWFpbkZy
YW1lLnJlc291cmNlQ29sbGVjdGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBh
dHRlcm4udGVzdChpdGVtLnVybCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNv
dXJjZSA9IGl0ZW07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgaWYgKCFyZXNvdXJjZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5mYWlsKCJGYWlsZWQgdG8gZmluZCBzcGVjaWZpYyByZXNvdXJjZS4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJlamVjdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0VGhhdChyZXNvdXJjZSBpbnN0YW5jZW9mIFdJLlJlc291cmNlLCAiUmVzb3VyY2Ug
c2hvdWxkIGV4aXN0LiIpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dEVxdWFsKHJlc291cmNlLnN0YXR1c0NvZGUsIHN0YXR1c0NvZGUsIGBzdGF0dXNDb2RlIHNob3Vs
ZCBiZSAke3N0YXR1c0NvZGV9YCk7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZXhwZWN0RXF1YWwocmVzb3VyY2UucmVzcG9uc2VTb3VyY2UsIHJlc3BvbnNlU291cmNlLCBgcmVz
cG9uc2VTb3VyY2Ugc2hvdWxkIGJlICR7U3RyaW5nKHJlc3BvbnNlU291cmNlKX1gKTsKKyAgICAg
ICAgICAgICAgICB9KS50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0pOworICAgIH0KKworICAgIGFkZFJlbG9hZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTog
IlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIiwKKyAgICAgICAgZGVzY3JpcHRp
b246ICJMb2FkIGEgcmVzb3VyY2UgZnJvbSB0aGUgbWVtb3J5IGNhY2hlIGJ5IHJlbG9hZGluZyB0
aGlzIHBhZ2UuIiwKKyAgICAgICAgcGF0dGVybjogL2NhY2hlZC1zY3JpcHRcLmpzJC8sCisgICAg
ICAgIGlnbm9yZUNhY2hlOiBmYWxzZSwKKyAgICAgICAgcmVzcG9uc2VTb3VyY2U6IFdJLlJlc291
cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlLAorICAgICAgICBzdGF0dXNDb2RlOiAzMDQs
CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdCBmb3IgYFJl
c291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jl
c291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9u
bHktNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBp
cmVkLW9ubHktNy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjIzMDJiZjllZDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNh
Y2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBA
QAorVGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC4KKworCis9
PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hl
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2Fj
aGUKK1BBU1M6IFJlc291cmNlIHNob3VsZCBleGlzdC4KK1BBU1M6IHN0YXR1c0NvZGUgc2hvdWxk
IGJlIDMwNAorUEFTUzogcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlIFN5bWJvbChtZW1vcnktY2Fj
aGUpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGly
ZWQtb25seS03Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVk
LW9ubHktNy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZWU0
ZTJlNzEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlk
YXRlLWV4cGlyZWQtb25seS03Lmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9jYWNoZWQtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1Rlc3RQYWdlLmRp
c3BhdGNoRXZlbnRUb0Zyb250ZW5kKCJMb2FkQ29tcGxldGUiKTsKKworZnVuY3Rpb24gdGVzdCgp
Cit7CisgICAgSW5zcGVjdG9yVGVzdC5kZWJ1ZygpOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVj
dG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlD
YWNoZSIpOworCisgICAgZnVuY3Rpb24gYWRkUmVsb2FkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0
aW9uLCBleHByZXNzaW9uLCBwYXR0ZXJuLCBpZ25vcmVDYWNoZSwgc3RhdHVzQ29kZSwgcmVzcG9u
c2VTb3VyY2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5h
bWUsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoe2lnbm9yZUNhY2hlLCByZXZh
bGlkYXRlQWxsUmVzb3VyY2VzOiB0cnVlfSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hd2FpdEV2ZW50KCJMb2FkQ29tcGxldGUiKS50aGVuKChldmVudCkgPT4geworICAgICAgICAg
ICAgICAgICAgICBsZXQgcmVzb3VyY2UgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBmb3Ig
KGxldCBpdGVtIG9mIFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5yZXNvdXJjZUNvbGxlY3Rp
b24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJuLnRlc3QoaXRlbS51cmwp
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSBpdGVtOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2Up
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgiRmFpbGVkIHRv
IGZpbmQgc3BlY2lmaWMgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZWpl
Y3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocmVzb3Vy
Y2UgaW5zdGFuY2VvZiBXSS5SZXNvdXJjZSwgIlJlc291cmNlIHNob3VsZCBleGlzdC4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5zdGF0
dXNDb2RlLCBzdGF0dXNDb2RlLCBgc3RhdHVzQ29kZSBzaG91bGQgYmUgJHtzdGF0dXNDb2RlfWAp
OworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNl
LnJlc3BvbnNlU291cmNlLCByZXNwb25zZVNvdXJjZSwgYHJlc3BvbnNlU291cmNlIHNob3VsZCBi
ZSAke1N0cmluZyhyZXNwb25zZVNvdXJjZSl9YCk7CisgICAgICAgICAgICAgICAgfSkudGhlbihy
ZXNvbHZlLCByZWplY3QpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAg
ICBhZGRSZWxvYWRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJSZXNvdXJjZS5SZXNwb25zZVNv
dXJjZS5NZW1vcnlDYWNoZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiTG9hZCBhIHJlc291cmNl
IGZyb20gdGhlIG1lbW9yeSBjYWNoZSBieSByZWxvYWRpbmcgdGhpcyBwYWdlLiIsCisgICAgICAg
IHBhdHRlcm46IC9jYWNoZWQtc2NyaXB0XC5qcyQvLAorICAgICAgICBpZ25vcmVDYWNoZTogZmFs
c2UsCisgICAgICAgIHJlc3BvbnNlU291cmNlOiBXSS5SZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5N
ZW1vcnlDYWNoZSwKKyAgICAgICAgc3RhdHVzQ29kZTogMzA0LAorICAgIH0pOworCisgICAgc3Vp
dGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJj
ZS5NZW1vcnlDYWNoZWAuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3Vy
Y2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTcwLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9u
c2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS03MC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIzMDJiZjllZDBl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhw
aXJlZC1vbmx5LTcwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3QgZm9yIGBSZXNv
dXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuCisKKworPT0gUnVubmluZyB0ZXN0IHN1
aXRlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorLS0gUnVubmluZyB0ZXN0
IGNhc2U6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCitQQVNTOiBSZXNvdXJj
ZSBzaG91bGQgZXhpc3QuCitQQVNTOiBzdGF0dXNDb2RlIHNob3VsZCBiZSAzMDQKK1BBU1M6IHJl
c3BvbnNlU291cmNlIHNob3VsZCBiZSBTeW1ib2wobWVtb3J5LWNhY2hlKQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3Bv
bnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNzAuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9u
c2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS03MC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZWU0ZTJlNzEzYgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVz
b3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25s
eS03MC5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FjaGVk
LXNjcmlwdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9G
cm9udGVuZCgiTG9hZENvbXBsZXRlIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3Bl
Y3RvclRlc3QuZGVidWcoKTsKKworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRl
QXN5bmNTdWl0ZSgiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiKTsKKworICAg
IGZ1bmN0aW9uIGFkZFJlbG9hZFRlc3RDYXNlKHtuYW1lLCBkZXNjcmlwdGlvbiwgZXhwcmVzc2lv
biwgcGF0dGVybiwgaWdub3JlQ2FjaGUsIHN0YXR1c0NvZGUsIHJlc3BvbnNlU291cmNlfSkgewor
ICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlv
biwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHtpZ25vcmVDYWNoZSwgcmV2YWxpZGF0ZUFsbFJlc291
cmNlczogdHJ1ZX0pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgi
TG9hZENvbXBsZXRlIikudGhlbigoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0
IHJlc291cmNlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBX
SS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUucmVzb3VyY2VDb2xsZWN0aW9uKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAocGF0dGVybi50ZXN0KGl0ZW0udXJsKSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc291cmNlID0gaXRlbTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc291cmNlKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZhaWwoIkZhaWxlZCB0byBmaW5kIHNwZWNpZmlj
IHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7CisgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHJlc291cmNlIGluc3RhbmNlb2Yg
V0kuUmVzb3VyY2UsICJSZXNvdXJjZSBzaG91bGQgZXhpc3QuIik7CisgICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uuc3RhdHVzQ29kZSwgc3RhdHVz
Q29kZSwgYHN0YXR1c0NvZGUgc2hvdWxkIGJlICR7c3RhdHVzQ29kZX1gKTsKKyAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5yZXNwb25zZVNvdXJj
ZSwgcmVzcG9uc2VTb3VyY2UsIGByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgJHtTdHJpbmcocmVz
cG9uc2VTb3VyY2UpfWApOworICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgYWRkUmVsb2FkVGVz
dENhc2UoeworICAgICAgICBuYW1lOiAiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2Fj
aGUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkxvYWQgYSByZXNvdXJjZSBmcm9tIHRoZSBtZW1v
cnkgY2FjaGUgYnkgcmVsb2FkaW5nIHRoaXMgcGFnZS4iLAorICAgICAgICBwYXR0ZXJuOiAvY2Fj
aGVkLXNjcmlwdFwuanMkLywKKyAgICAgICAgaWdub3JlQ2FjaGU6IGZhbHNlLAorICAgICAgICBy
ZXNwb25zZVNvdXJjZTogV0kuUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUsCisg
ICAgICAgIHN0YXR1c0NvZGU6IDMwNCwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNl
c0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSI+Cis8cD5UZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVg
LjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNo
ZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS03MS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1v
cnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNzEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzAyYmY5ZWQwZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2Ut
cmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS03MS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VT
b3VyY2UuTWVtb3J5Q2FjaGVgLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUmVzb3VyY2Uu
UmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBSZXNvdXJj
ZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorUEFTUzogUmVzb3VyY2Ugc2hvdWxkIGV4aXN0
LgorUEFTUzogc3RhdHVzQ29kZSBzaG91bGQgYmUgMzA0CitQQVNTOiByZXNwb25zZVNvdXJjZSBz
aG91bGQgYmUgU3ltYm9sKG1lbW9yeS1jYWNoZSkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVt
b3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTcxLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1v
cnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNzEuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2VlNGUyZTcxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNl
LXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNzEuaHRtbApAQCAt
MCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NhY2hlZC1zY3JpcHQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQoIkxvYWRD
b21wbGV0ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmRlYnVn
KCk7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJl
c291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIik7CisKKyAgICBmdW5jdGlvbiBhZGRS
ZWxvYWRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb24sIHBhdHRlcm4sIGln
bm9yZUNhY2hlLCBzdGF0dXNDb2RlLCByZXNwb25zZVNvdXJjZX0pIHsKKyAgICAgICAgc3VpdGUu
YWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwgZGVzY3JpcHRpb24sCisgICAgICAgICAg
ICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
cmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRhdGVBbGxSZXNvdXJjZXM6IHRydWV9KTsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoIkxvYWRDb21wbGV0ZSIp
LnRoZW4oKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9IG51
bGw7CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgV0kubmV0d29ya01hbmFn
ZXIubWFpbkZyYW1lLnJlc291cmNlQ29sbGVjdGlvbikgeworICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKHBhdHRlcm4udGVzdChpdGVtLnVybCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXNvdXJjZSA9IGl0ZW07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkgeworICAgICAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQgdG8gZmluZCBzcGVjaWZpYyByZXNvdXJjZS4iKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgpOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXNvdXJjZSBpbnN0YW5jZW9mIFdJLlJlc291cmNlLCAi
UmVzb3VyY2Ugc2hvdWxkIGV4aXN0LiIpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1c0NvZGUsIHN0YXR1c0NvZGUsIGBzdGF0dXND
b2RlIHNob3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7CisgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2UucmVzcG9uc2VTb3VyY2UsIHJlc3BvbnNlU291
cmNlLCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlICR7U3RyaW5nKHJlc3BvbnNlU291cmNlKX1g
KTsKKyAgICAgICAgICAgICAgICB9KS50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIGFkZFJlbG9hZFRlc3RDYXNlKHsKKyAgICAg
ICAgbmFtZTogIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIiwKKyAgICAgICAg
ZGVzY3JpcHRpb246ICJMb2FkIGEgcmVzb3VyY2UgZnJvbSB0aGUgbWVtb3J5IGNhY2hlIGJ5IHJl
bG9hZGluZyB0aGlzIHBhZ2UuIiwKKyAgICAgICAgcGF0dGVybjogL2NhY2hlZC1zY3JpcHRcLmpz
JC8sCisgICAgICAgIGlnbm9yZUNhY2hlOiBmYWxzZSwKKyAgICAgICAgcmVzcG9uc2VTb3VyY2U6
IFdJLlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlLAorICAgICAgICBzdGF0dXND
b2RlOiAzMDQsCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsK
K30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVz
dCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC48L3A+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1l
eHBpcmVkLW9ubHktNzItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFs
aWRhdGUtZXhwaXJlZC1vbmx5LTcyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJj
ZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNzItZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsOSBAQAorVGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNh
Y2hlYC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFJlc291cmNlLlJlc3BvbnNlU291cmNl
Lk1lbW9yeUNhY2hlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUmVzb3VyY2UuUmVzcG9uc2VTb3Vy
Y2UuTWVtb3J5Q2FjaGUKK1BBU1M6IFJlc291cmNlIHNob3VsZCBleGlzdC4KK1BBU1M6IHN0YXR1
c0NvZGUgc2hvdWxkIGJlIDMwNAorUEFTUzogcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlIFN5bWJv
bChtZW1vcnktY2FjaGUpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZh
bGlkYXRlLWV4cGlyZWQtb25seS03Mi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFs
aWRhdGUtZXhwaXJlZC1vbmx5LTcyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5
LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTcyLmh0bWwKQEAgLTAsMCArMSw1OCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9jYWNoZWQtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK1Rlc3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5kKCJMb2FkQ29tcGxldGUiKTsKKwor
ZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5kZWJ1ZygpOworCisgICAgbGV0
IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJSZXNvdXJjZS5SZXNwb25z
ZVNvdXJjZS5NZW1vcnlDYWNoZSIpOworCisgICAgZnVuY3Rpb24gYWRkUmVsb2FkVGVzdENhc2Uo
e25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9uLCBwYXR0ZXJuLCBpZ25vcmVDYWNoZSwgc3Rh
dHVzQ29kZSwgcmVzcG9uc2VTb3VyY2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsK
KyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgdGVzdChyZXNvbHZl
LCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoe2ln
bm9yZUNhY2hlLCByZXZhbGlkYXRlQWxsUmVzb3VyY2VzOiB0cnVlfSk7CisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJMb2FkQ29tcGxldGUiKS50aGVuKChldmVudCkg
PT4geworICAgICAgICAgICAgICAgICAgICBsZXQgcmVzb3VyY2UgPSBudWxsOworICAgICAgICAg
ICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5y
ZXNvdXJjZUNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJu
LnRlc3QoaXRlbS51cmwpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2Ug
PSBpdGVtOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IGlmICghcmVzb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
ZmFpbCgiRmFpbGVkIHRvIGZpbmQgc3BlY2lmaWMgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAg
ICAgICAgICAgICByZWplY3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdFRoYXQocmVzb3VyY2UgaW5zdGFuY2VvZiBXSS5SZXNvdXJjZSwgIlJlc291cmNlIHNob3Vs
ZCBleGlzdC4iKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVh
bChyZXNvdXJjZS5zdGF0dXNDb2RlLCBzdGF0dXNDb2RlLCBgc3RhdHVzQ29kZSBzaG91bGQgYmUg
JHtzdGF0dXNDb2RlfWApOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dEVxdWFsKHJlc291cmNlLnJlc3BvbnNlU291cmNlLCByZXNwb25zZVNvdXJjZSwgYHJlc3BvbnNl
U291cmNlIHNob3VsZCBiZSAke1N0cmluZyhyZXNwb25zZVNvdXJjZSl9YCk7CisgICAgICAgICAg
ICAgICAgfSkudGhlbihyZXNvbHZlLCByZWplY3QpOworICAgICAgICAgICAgfQorICAgICAgICB9
KTsKKyAgICB9CisKKyAgICBhZGRSZWxvYWRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJSZXNv
dXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAi
TG9hZCBhIHJlc291cmNlIGZyb20gdGhlIG1lbW9yeSBjYWNoZSBieSByZWxvYWRpbmcgdGhpcyBw
YWdlLiIsCisgICAgICAgIHBhdHRlcm46IC9jYWNoZWQtc2NyaXB0XC5qcyQvLAorICAgICAgICBp
Z25vcmVDYWNoZTogZmFsc2UsCisgICAgICAgIHJlc3BvbnNlU291cmNlOiBXSS5SZXNvdXJjZS5S
ZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSwKKyAgICAgICAgc3RhdHVzQ29kZTogMzA0LAorICAg
IH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9yIGBSZXNvdXJj
ZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJj
ZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTcz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
cmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQt
b25seS03My1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjIzMDJiZjllZDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hl
LXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTczLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAK
K1Rlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuCisKKworPT0g
UnVubmluZyB0ZXN0IHN1aXRlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQor
LS0gUnVubmluZyB0ZXN0IGNhc2U6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hl
CitQQVNTOiBSZXNvdXJjZSBzaG91bGQgZXhpc3QuCitQQVNTOiBzdGF0dXNDb2RlIHNob3VsZCBi
ZSAzMDQKK1BBU1M6IHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSBTeW1ib2wobWVtb3J5LWNhY2hl
KQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVk
LW9ubHktNzMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
cmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQt
b25seS03My5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZWU0
ZTJlNzEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlk
YXRlLWV4cGlyZWQtb25seS03My5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvY2FjaGVkLXNjcmlwdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitUZXN0UGFnZS5k
aXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiTG9hZENvbXBsZXRlIik7CisKK2Z1bmN0aW9uIHRlc3Qo
KQoreworICAgIEluc3BlY3RvclRlc3QuZGVidWcoKTsKKworICAgIGxldCBzdWl0ZSA9IEluc3Bl
Y3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5
Q2FjaGUiKTsKKworICAgIGZ1bmN0aW9uIGFkZFJlbG9hZFRlc3RDYXNlKHtuYW1lLCBkZXNjcmlw
dGlvbiwgZXhwcmVzc2lvbiwgcGF0dGVybiwgaWdub3JlQ2FjaGUsIHN0YXR1c0NvZGUsIHJlc3Bv
bnNlU291cmNlfSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBu
YW1lLCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7Cisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHtpZ25vcmVDYWNoZSwgcmV2
YWxpZGF0ZUFsbFJlc291cmNlczogdHJ1ZX0pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuYXdhaXRFdmVudCgiTG9hZENvbXBsZXRlIikudGhlbigoZXZlbnQpID0+IHsKKyAgICAgICAg
ICAgICAgICAgICAgbGV0IHJlc291cmNlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZm9y
IChsZXQgaXRlbSBvZiBXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUucmVzb3VyY2VDb2xsZWN0
aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGF0dGVybi50ZXN0KGl0ZW0udXJs
KSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlID0gaXRlbTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc291cmNl
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZhaWwoIkZhaWxlZCB0
byBmaW5kIHNwZWNpZmljIHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVq
ZWN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHJlc291
cmNlIGluc3RhbmNlb2YgV0kuUmVzb3VyY2UsICJSZXNvdXJjZSBzaG91bGQgZXhpc3QuIik7Cisg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uuc3Rh
dHVzQ29kZSwgc3RhdHVzQ29kZSwgYHN0YXR1c0NvZGUgc2hvdWxkIGJlICR7c3RhdHVzQ29kZX1g
KTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJj
ZS5yZXNwb25zZVNvdXJjZSwgcmVzcG9uc2VTb3VyY2UsIGByZXNwb25zZVNvdXJjZSBzaG91bGQg
YmUgJHtTdHJpbmcocmVzcG9uc2VTb3VyY2UpfWApOworICAgICAgICAgICAgICAgIH0pLnRoZW4o
cmVzb2x2ZSwgcmVqZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisg
ICAgYWRkUmVsb2FkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiUmVzb3VyY2UuUmVzcG9uc2VT
b3VyY2UuTWVtb3J5Q2FjaGUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkxvYWQgYSByZXNvdXJj
ZSBmcm9tIHRoZSBtZW1vcnkgY2FjaGUgYnkgcmVsb2FkaW5nIHRoaXMgcGFnZS4iLAorICAgICAg
ICBwYXR0ZXJuOiAvY2FjaGVkLXNjcmlwdFwuanMkLywKKyAgICAgICAgaWdub3JlQ2FjaGU6IGZh
bHNlLAorICAgICAgICByZXNwb25zZVNvdXJjZTogV0kuUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2Uu
TWVtb3J5Q2FjaGUsCisgICAgICAgIHN0YXR1c0NvZGU6IDMwNCwKKyAgICB9KTsKKworICAgIHN1
aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3Vy
Y2UuTWVtb3J5Q2FjaGVgLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291
cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS03NC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3Bv
bnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNzQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzAyYmY5ZWQw
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4
cGlyZWQtb25seS03NC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0IGZvciBgUmVz
b3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLgorCisKKz09IFJ1bm5pbmcgdGVzdCBz
dWl0ZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKKy0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorUEFTUzogUmVzb3Vy
Y2Ugc2hvdWxkIGV4aXN0LgorUEFTUzogc3RhdHVzQ29kZSBzaG91bGQgYmUgMzA0CitQQVNTOiBy
ZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgU3ltYm9sKG1lbW9yeS1jYWNoZSkKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNw
b25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTc0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3Bv
bnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNzQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2VlNGUyZTcxM2IKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jl
c291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9u
bHktNzQuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NhY2hl
ZC1zY3JpcHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRv
RnJvbnRlbmQoIkxvYWRDb21wbGV0ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNw
ZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0
ZUFzeW5jU3VpdGUoIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIik7CisKKyAg
ICBmdW5jdGlvbiBhZGRSZWxvYWRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Np
b24sIHBhdHRlcm4sIGlnbm9yZUNhY2hlLCBzdGF0dXNDb2RlLCByZXNwb25zZVNvdXJjZX0pIHsK
KyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwgZGVzY3JpcHRp
b24sCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRhdGVBbGxSZXNv
dXJjZXM6IHRydWV9KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQo
IkxvYWRDb21wbGV0ZSIpLnRoZW4oKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGxl
dCByZXNvdXJjZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2Yg
V0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1lLnJlc291cmNlQ29sbGVjdGlvbikgeworICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChpdGVtLnVybCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSA9IGl0ZW07CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQgdG8gZmluZCBzcGVjaWZp
YyByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgpOworICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXNvdXJjZSBpbnN0YW5jZW9m
IFdJLlJlc291cmNlLCAiUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LiIpOworICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1c0NvZGUsIHN0YXR1
c0NvZGUsIGBzdGF0dXNDb2RlIHNob3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7CisgICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2UucmVzcG9uc2VTb3Vy
Y2UsIHJlc3BvbnNlU291cmNlLCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlICR7U3RyaW5nKHJl
c3BvbnNlU291cmNlKX1gKTsKKyAgICAgICAgICAgICAgICB9KS50aGVuKHJlc29sdmUsIHJlamVj
dCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIGFkZFJlbG9hZFRl
c3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNh
Y2hlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJMb2FkIGEgcmVzb3VyY2UgZnJvbSB0aGUgbWVt
b3J5IGNhY2hlIGJ5IHJlbG9hZGluZyB0aGlzIHBhZ2UuIiwKKyAgICAgICAgcGF0dGVybjogL2Nh
Y2hlZC1zY3JpcHRcLmpzJC8sCisgICAgICAgIGlnbm9yZUNhY2hlOiBmYWxzZSwKKyAgICAgICAg
cmVzcG9uc2VTb3VyY2U6IFdJLlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlLAor
ICAgICAgICBzdGF0dXNDb2RlOiAzMDQsCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2Fz
ZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgorPHA+VGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hl
YC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2Fj
aGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNzUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVt
b3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTc1LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNl
LXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNzUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNl
U291cmNlLk1lbW9yeUNhY2hlYC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFJlc291cmNl
LlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUmVzb3Vy
Y2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKK1BBU1M6IFJlc291cmNlIHNob3VsZCBleGlz
dC4KK1BBU1M6IHN0YXR1c0NvZGUgc2hvdWxkIGJlIDMwNAorUEFTUzogcmVzcG9uc2VTb3VyY2Ug
c2hvdWxkIGJlIFN5bWJvbChtZW1vcnktY2FjaGUpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1l
bW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS03NS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVt
b3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTc1Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25z
ZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTc1Lmh0bWwKQEAg
LTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jYWNoZWQtc2NyaXB0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KK1Rlc3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5kKCJMb2Fk
Q29tcGxldGUiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5kZWJ1
ZygpOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJS
ZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIpOworCisgICAgZnVuY3Rpb24gYWRk
UmVsb2FkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9uLCBwYXR0ZXJuLCBp
Z25vcmVDYWNoZSwgc3RhdHVzQ29kZSwgcmVzcG9uc2VTb3VyY2V9KSB7CisgICAgICAgIHN1aXRl
LmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAgICAg
ICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LnJlbG9hZFBhZ2Uoe2lnbm9yZUNhY2hlLCByZXZhbGlkYXRlQWxsUmVzb3VyY2VzOiB0cnVlfSk7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJMb2FkQ29tcGxldGUi
KS50aGVuKChldmVudCkgPT4geworICAgICAgICAgICAgICAgICAgICBsZXQgcmVzb3VyY2UgPSBu
dWxsOworICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIFdJLm5ldHdvcmtNYW5h
Z2VyLm1haW5GcmFtZS5yZXNvdXJjZUNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChwYXR0ZXJuLnRlc3QoaXRlbS51cmwpKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzb3VyY2UgPSBpdGVtOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZmFpbCgiRmFpbGVkIHRvIGZpbmQgc3BlY2lmaWMgcmVzb3VyY2UuIik7
CisgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocmVzb3VyY2UgaW5zdGFuY2VvZiBXSS5SZXNvdXJjZSwg
IlJlc291cmNlIHNob3VsZCBleGlzdC4iKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5zdGF0dXNDb2RlLCBzdGF0dXNDb2RlLCBgc3RhdHVz
Q29kZSBzaG91bGQgYmUgJHtzdGF0dXNDb2RlfWApOworICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnJlc3BvbnNlU291cmNlLCByZXNwb25zZVNv
dXJjZSwgYHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSAke1N0cmluZyhyZXNwb25zZVNvdXJjZSl9
YCk7CisgICAgICAgICAgICAgICAgfSkudGhlbihyZXNvbHZlLCByZWplY3QpOworICAgICAgICAg
ICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBhZGRSZWxvYWRUZXN0Q2FzZSh7CisgICAg
ICAgIG5hbWU6ICJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIsCisgICAgICAg
IGRlc2NyaXB0aW9uOiAiTG9hZCBhIHJlc291cmNlIGZyb20gdGhlIG1lbW9yeSBjYWNoZSBieSBy
ZWxvYWRpbmcgdGhpcyBwYWdlLiIsCisgICAgICAgIHBhdHRlcm46IC9jYWNoZWQtc2NyaXB0XC5q
cyQvLAorICAgICAgICBpZ25vcmVDYWNoZTogZmFsc2UsCisgICAgICAgIHJlc3BvbnNlU291cmNl
OiBXSS5SZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSwKKyAgICAgICAgc3RhdHVz
Q29kZTogMzA0LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRl
c3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuPC9wPgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUt
ZXhwaXJlZC1vbmx5LTc2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZh
bGlkYXRlLWV4cGlyZWQtb25seS03Ni1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjIzMDJiZjllZDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3Vy
Y2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTc2LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDkgQEAKK1Rlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlD
YWNoZWAuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJj
ZS5NZW1vcnlDYWNoZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFJlc291cmNlLlJlc3BvbnNlU291
cmNlLk1lbW9yeUNhY2hlCitQQVNTOiBSZXNvdXJjZSBzaG91bGQgZXhpc3QuCitQQVNTOiBzdGF0
dXNDb2RlIHNob3VsZCBiZSAzMDQKK1BBU1M6IHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSBTeW1i
b2wobWVtb3J5LWNhY2hlKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2
YWxpZGF0ZS1leHBpcmVkLW9ubHktNzYuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZh
bGlkYXRlLWV4cGlyZWQtb25seS03Ni5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4zZWU0ZTJlNzEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9y
eS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS03Ni5odG1sCkBAIC0wLDAgKzEsNTggQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FjaGVkLXNjcmlwdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CitUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiTG9hZENvbXBsZXRlIik7CisK
K2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZGVidWcoKTsKKworICAgIGxl
dCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUmVzb3VyY2UuUmVzcG9u
c2VTb3VyY2UuTWVtb3J5Q2FjaGUiKTsKKworICAgIGZ1bmN0aW9uIGFkZFJlbG9hZFRlc3RDYXNl
KHtuYW1lLCBkZXNjcmlwdGlvbiwgZXhwcmVzc2lvbiwgcGF0dGVybiwgaWdub3JlQ2FjaGUsIHN0
YXR1c0NvZGUsIHJlc3BvbnNlU291cmNlfSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7
CisgICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2
ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHtp
Z25vcmVDYWNoZSwgcmV2YWxpZGF0ZUFsbFJlc291cmNlczogdHJ1ZX0pOworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgiTG9hZENvbXBsZXRlIikudGhlbigoZXZlbnQp
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHJlc291cmNlID0gbnVsbDsKKyAgICAgICAg
ICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUu
cmVzb3VyY2VDb2xsZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGF0dGVy
bi50ZXN0KGl0ZW0udXJsKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNl
ID0gaXRlbTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICBpZiAoIXJlc291cmNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmZhaWwoIkZhaWxlZCB0byBmaW5kIHNwZWNpZmljIHJlc291cmNlLiIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgcmVqZWN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RUaGF0KHJlc291cmNlIGluc3RhbmNlb2YgV0kuUmVzb3VyY2UsICJSZXNvdXJjZSBzaG91
bGQgZXhpc3QuIik7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1
YWwocmVzb3VyY2Uuc3RhdHVzQ29kZSwgc3RhdHVzQ29kZSwgYHN0YXR1c0NvZGUgc2hvdWxkIGJl
ICR7c3RhdHVzQ29kZX1gKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RFcXVhbChyZXNvdXJjZS5yZXNwb25zZVNvdXJjZSwgcmVzcG9uc2VTb3VyY2UsIGByZXNwb25z
ZVNvdXJjZSBzaG91bGQgYmUgJHtTdHJpbmcocmVzcG9uc2VTb3VyY2UpfWApOworICAgICAgICAg
ICAgICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fSk7CisgICAgfQorCisgICAgYWRkUmVsb2FkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiUmVz
b3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiLAorICAgICAgICBkZXNjcmlwdGlvbjog
IkxvYWQgYSByZXNvdXJjZSBmcm9tIHRoZSBtZW1vcnkgY2FjaGUgYnkgcmVsb2FkaW5nIHRoaXMg
cGFnZS4iLAorICAgICAgICBwYXR0ZXJuOiAvY2FjaGVkLXNjcmlwdFwuanMkLywKKyAgICAgICAg
aWdub3JlQ2FjaGU6IGZhbHNlLAorICAgICAgICByZXNwb25zZVNvdXJjZTogV0kuUmVzb3VyY2Uu
UmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUsCisgICAgICAgIHN0YXR1c0NvZGU6IDMwNCwKKyAg
ICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0IGZvciBgUmVzb3Vy
Y2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3Vy
Y2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS03
Ny1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVk
LW9ubHktNzctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi4yMzAyYmY5ZWQwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNo
ZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS03Ny1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBA
CitUZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLgorCisKKz09
IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUK
Ky0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNo
ZQorUEFTUzogUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LgorUEFTUzogc3RhdHVzQ29kZSBzaG91bGQg
YmUgMzA0CitQQVNTOiByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgU3ltYm9sKG1lbW9yeS1jYWNo
ZSkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJl
ZC1vbmx5LTc3Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVk
LW9ubHktNzcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2Vl
NGUyZTcxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxp
ZGF0ZS1leHBpcmVkLW9ubHktNzcuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2NhY2hlZC1zY3JpcHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorVGVzdFBhZ2Uu
ZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQoIkxvYWRDb21wbGV0ZSIpOworCitmdW5jdGlvbiB0ZXN0
KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNw
ZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9y
eUNhY2hlIik7CisKKyAgICBmdW5jdGlvbiBhZGRSZWxvYWRUZXN0Q2FzZSh7bmFtZSwgZGVzY3Jp
cHRpb24sIGV4cHJlc3Npb24sIHBhdHRlcm4sIGlnbm9yZUNhY2hlLCBzdGF0dXNDb2RlLCByZXNw
b25zZVNvdXJjZX0pIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAg
bmFtZSwgZGVzY3JpcHRpb24sCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJl
dmFsaWRhdGVBbGxSZXNvdXJjZXM6IHRydWV9KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmF3YWl0RXZlbnQoIkxvYWRDb21wbGV0ZSIpLnRoZW4oKGV2ZW50KSA9PiB7CisgICAgICAg
ICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGZv
ciAobGV0IGl0ZW0gb2YgV0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1lLnJlc291cmNlQ29sbGVj
dGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChpdGVtLnVy
bCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSA9IGl0ZW07CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNvdXJj
ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQg
dG8gZmluZCBzcGVjaWZpYyByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
amVjdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXNv
dXJjZSBpbnN0YW5jZW9mIFdJLlJlc291cmNlLCAiUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LiIpOwor
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0
YXR1c0NvZGUsIHN0YXR1c0NvZGUsIGBzdGF0dXNDb2RlIHNob3VsZCBiZSAke3N0YXR1c0NvZGV9
YCk7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3Vy
Y2UucmVzcG9uc2VTb3VyY2UsIHJlc3BvbnNlU291cmNlLCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxk
IGJlICR7U3RyaW5nKHJlc3BvbnNlU291cmNlKX1gKTsKKyAgICAgICAgICAgICAgICB9KS50aGVu
KHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIGFkZFJlbG9hZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlJlc291cmNlLlJlc3BvbnNl
U291cmNlLk1lbW9yeUNhY2hlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJMb2FkIGEgcmVzb3Vy
Y2UgZnJvbSB0aGUgbWVtb3J5IGNhY2hlIGJ5IHJlbG9hZGluZyB0aGlzIHBhZ2UuIiwKKyAgICAg
ICAgcGF0dGVybjogL2NhY2hlZC1zY3JpcHRcLmpzJC8sCisgICAgICAgIGlnbm9yZUNhY2hlOiBm
YWxzZSwKKyAgICAgICAgcmVzcG9uc2VTb3VyY2U6IFdJLlJlc291cmNlLlJlc3BvbnNlU291cmNl
Lk1lbW9yeUNhY2hlLAorICAgICAgICBzdGF0dXNDb2RlOiAzMDQsCisgICAgfSk7CisKKyAgICBz
dWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291
cmNlLk1lbW9yeUNhY2hlYC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNv
dXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNzgtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNw
b25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTc4LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVk
MGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1l
eHBpcmVkLW9ubHktNzgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdCBmb3IgYFJl
c291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC4KKworCis9PSBSdW5uaW5nIHRlc3Qg
c3VpdGU6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCistLSBSdW5uaW5nIHRl
c3QgY2FzZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKK1BBU1M6IFJlc291
cmNlIHNob3VsZCBleGlzdC4KK1BBU1M6IHN0YXR1c0NvZGUgc2hvdWxkIGJlIDMwNAorUEFTUzog
cmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlIFN5bWJvbChtZW1vcnktY2FjaGUpCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVz
cG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS03OC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNw
b25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTc4Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9y
ZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1v
bmx5LTc4Lmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jYWNo
ZWQtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1Rlc3RQYWdlLmRpc3BhdGNoRXZlbnRU
b0Zyb250ZW5kKCJMb2FkQ29tcGxldGUiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5z
cGVjdG9yVGVzdC5kZWJ1ZygpOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVh
dGVBc3luY1N1aXRlKCJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIpOworCisg
ICAgZnVuY3Rpb24gYWRkUmVsb2FkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNz
aW9uLCBwYXR0ZXJuLCBpZ25vcmVDYWNoZSwgc3RhdHVzQ29kZSwgcmVzcG9uc2VTb3VyY2V9KSB7
CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0
aW9uLAorICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoe2lnbm9yZUNhY2hlLCByZXZhbGlkYXRlQWxsUmVz
b3VyY2VzOiB0cnVlfSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50
KCJMb2FkQ29tcGxldGUiKS50aGVuKChldmVudCkgPT4geworICAgICAgICAgICAgICAgICAgICBs
ZXQgcmVzb3VyY2UgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9m
IFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5yZXNvdXJjZUNvbGxlY3Rpb24pIHsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJuLnRlc3QoaXRlbS51cmwpKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSBpdGVtOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2UpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgiRmFpbGVkIHRvIGZpbmQgc3BlY2lm
aWMgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocmVzb3VyY2UgaW5zdGFuY2Vv
ZiBXSS5SZXNvdXJjZSwgIlJlc291cmNlIHNob3VsZCBleGlzdC4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5zdGF0dXNDb2RlLCBzdGF0
dXNDb2RlLCBgc3RhdHVzQ29kZSBzaG91bGQgYmUgJHtzdGF0dXNDb2RlfWApOworICAgICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnJlc3BvbnNlU291
cmNlLCByZXNwb25zZVNvdXJjZSwgYHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSAke1N0cmluZyhy
ZXNwb25zZVNvdXJjZSl9YCk7CisgICAgICAgICAgICAgICAgfSkudGhlbihyZXNvbHZlLCByZWpl
Y3QpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBhZGRSZWxvYWRU
ZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlD
YWNoZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiTG9hZCBhIHJlc291cmNlIGZyb20gdGhlIG1l
bW9yeSBjYWNoZSBieSByZWxvYWRpbmcgdGhpcyBwYWdlLiIsCisgICAgICAgIHBhdHRlcm46IC9j
YWNoZWQtc2NyaXB0XC5qcyQvLAorICAgICAgICBpZ25vcmVDYWNoZTogZmFsc2UsCisgICAgICAg
IHJlc3BvbnNlU291cmNlOiBXSS5SZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSwK
KyAgICAgICAgc3RhdHVzQ29kZTogMzA0LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENh
c2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KKzxwPlRlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNo
ZWAuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNh
Y2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTc5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1l
bW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS03OS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIzMDJiZjllZDBlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJj
ZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTc5
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25z
ZVNvdXJjZS5NZW1vcnlDYWNoZWAuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBSZXNvdXJj
ZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFJlc291
cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCitQQVNTOiBSZXNvdXJjZSBzaG91bGQgZXhp
c3QuCitQQVNTOiBzdGF0dXNDb2RlIHNob3VsZCBiZSAzMDQKK1BBU1M6IHJlc3BvbnNlU291cmNl
IHNob3VsZCBiZSBTeW1ib2wobWVtb3J5LWNhY2hlKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1t
ZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktNzkuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1l
bW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS03OS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZWU0ZTJlNzEzYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9u
c2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS03OS5odG1sCkBA
IC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FjaGVkLXNjcmlwdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CitUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiTG9h
ZENvbXBsZXRlIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZGVi
dWcoKTsKKworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgi
UmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiKTsKKworICAgIGZ1bmN0aW9uIGFk
ZFJlbG9hZFRlc3RDYXNlKHtuYW1lLCBkZXNjcmlwdGlvbiwgZXhwcmVzc2lvbiwgcGF0dGVybiwg
aWdub3JlQ2FjaGUsIHN0YXR1c0NvZGUsIHJlc3BvbnNlU291cmNlfSkgeworICAgICAgICBzdWl0
ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKKyAgICAgICAg
ICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5yZWxvYWRQYWdlKHtpZ25vcmVDYWNoZSwgcmV2YWxpZGF0ZUFsbFJlc291cmNlczogdHJ1ZX0p
OworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgiTG9hZENvbXBsZXRl
IikudGhlbigoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHJlc291cmNlID0g
bnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBXSS5uZXR3b3JrTWFu
YWdlci5tYWluRnJhbWUucmVzb3VyY2VDb2xsZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAocGF0dGVybi50ZXN0KGl0ZW0udXJsKSkgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlc291cmNlID0gaXRlbTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICBpZiAoIXJlc291cmNlKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmZhaWwoIkZhaWxlZCB0byBmaW5kIHNwZWNpZmljIHJlc291cmNlLiIp
OworICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7CisgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHJlc291cmNlIGluc3RhbmNlb2YgV0kuUmVzb3VyY2Us
ICJSZXNvdXJjZSBzaG91bGQgZXhpc3QuIik7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uuc3RhdHVzQ29kZSwgc3RhdHVzQ29kZSwgYHN0YXR1
c0NvZGUgc2hvdWxkIGJlICR7c3RhdHVzQ29kZX1gKTsKKyAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5yZXNwb25zZVNvdXJjZSwgcmVzcG9uc2VT
b3VyY2UsIGByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgJHtTdHJpbmcocmVzcG9uc2VTb3VyY2Up
fWApOworICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgYWRkUmVsb2FkVGVzdENhc2UoeworICAg
ICAgICBuYW1lOiAiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiLAorICAgICAg
ICBkZXNjcmlwdGlvbjogIkxvYWQgYSByZXNvdXJjZSBmcm9tIHRoZSBtZW1vcnkgY2FjaGUgYnkg
cmVsb2FkaW5nIHRoaXMgcGFnZS4iLAorICAgICAgICBwYXR0ZXJuOiAvY2FjaGVkLXNjcmlwdFwu
anMkLywKKyAgICAgICAgaWdub3JlQ2FjaGU6IGZhbHNlLAorICAgICAgICByZXNwb25zZVNvdXJj
ZTogV0kuUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUsCisgICAgICAgIHN0YXR1
c0NvZGU6IDMwNCwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgp
OworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5U
ZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLjwvcD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRl
LWV4cGlyZWQtb25seS04LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZh
bGlkYXRlLWV4cGlyZWQtb25seS04LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJj
ZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktOC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw5IEBACitUZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2Fj
aGVgLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2Uu
TWVtb3J5Q2FjaGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJj
ZS5NZW1vcnlDYWNoZQorUEFTUzogUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LgorUEFTUzogc3RhdHVz
Q29kZSBzaG91bGQgYmUgMzA0CitQQVNTOiByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgU3ltYm9s
KG1lbW9yeS1jYWNoZSkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFs
aWRhdGUtZXhwaXJlZC1vbmx5LTguaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlk
YXRlLWV4cGlyZWQtb25seS04Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNh
Y2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTguaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2NhY2hlZC1zY3JpcHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
VGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQoIkxvYWRDb21wbGV0ZSIpOworCitmdW5j
dGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAgICBsZXQgc3Vp
dGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJlc291cmNlLlJlc3BvbnNlU291
cmNlLk1lbW9yeUNhY2hlIik7CisKKyAgICBmdW5jdGlvbiBhZGRSZWxvYWRUZXN0Q2FzZSh7bmFt
ZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb24sIHBhdHRlcm4sIGlnbm9yZUNhY2hlLCBzdGF0dXND
b2RlLCByZXNwb25zZVNvdXJjZX0pIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAg
ICAgICAgICAgbmFtZSwgZGVzY3JpcHRpb24sCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJl
amVjdCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSh7aWdub3Jl
Q2FjaGUsIHJldmFsaWRhdGVBbGxSZXNvdXJjZXM6IHRydWV9KTsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoIkxvYWRDb21wbGV0ZSIpLnRoZW4oKGV2ZW50KSA9PiB7
CisgICAgICAgICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9IG51bGw7CisgICAgICAgICAgICAg
ICAgICAgIGZvciAobGV0IGl0ZW0gb2YgV0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1lLnJlc291
cmNlQ29sbGVjdGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVz
dChpdGVtLnVybCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSA9IGl0
ZW07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYg
KCFyZXNvdXJjZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWls
KCJGYWlsZWQgdG8gZmluZCBzcGVjaWZpYyByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJlamVjdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0
VGhhdChyZXNvdXJjZSBpbnN0YW5jZW9mIFdJLlJlc291cmNlLCAiUmVzb3VyY2Ugc2hvdWxkIGV4
aXN0LiIpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJl
c291cmNlLnN0YXR1c0NvZGUsIHN0YXR1c0NvZGUsIGBzdGF0dXNDb2RlIHNob3VsZCBiZSAke3N0
YXR1c0NvZGV9YCk7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1
YWwocmVzb3VyY2UucmVzcG9uc2VTb3VyY2UsIHJlc3BvbnNlU291cmNlLCBgcmVzcG9uc2VTb3Vy
Y2Ugc2hvdWxkIGJlICR7U3RyaW5nKHJlc3BvbnNlU291cmNlKX1gKTsKKyAgICAgICAgICAgICAg
ICB9KS50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOwor
ICAgIH0KKworICAgIGFkZFJlbG9hZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlJlc291cmNl
LlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJMb2Fk
IGEgcmVzb3VyY2UgZnJvbSB0aGUgbWVtb3J5IGNhY2hlIGJ5IHJlbG9hZGluZyB0aGlzIHBhZ2Uu
IiwKKyAgICAgICAgcGF0dGVybjogL2NhY2hlZC1zY3JpcHRcLmpzJC8sCisgICAgICAgIGlnbm9y
ZUNhY2hlOiBmYWxzZSwKKyAgICAgICAgcmVzcG9uc2VTb3VyY2U6IFdJLlJlc291cmNlLlJlc3Bv
bnNlU291cmNlLk1lbW9yeUNhY2hlLAorICAgICAgICBzdGF0dXNDb2RlOiAzMDQsCisgICAgfSk7
CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdCBmb3IgYFJlc291cmNlLlJl
c3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJl
c3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktODAtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNv
dXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5
LTgwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
MjMwMmJmOWVkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2
YWxpZGF0ZS1leHBpcmVkLW9ubHktODAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVz
dCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC4KKworCis9PSBSdW5u
aW5nIHRlc3Qgc3VpdGU6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCistLSBS
dW5uaW5nIHRlc3QgY2FzZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKK1BB
U1M6IFJlc291cmNlIHNob3VsZCBleGlzdC4KK1BBU1M6IHN0YXR1c0NvZGUgc2hvdWxkIGJlIDMw
NAorUEFTUzogcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlIFN5bWJvbChtZW1vcnktY2FjaGUpCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVz
b3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25s
eS04MC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNv
dXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5
LTgwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNlZTRlMmU3
MTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUt
ZXhwaXJlZC1vbmx5LTgwLmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9InJlc291
cmNlcy9jYWNoZWQtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1Rlc3RQYWdlLmRpc3Bh
dGNoRXZlbnRUb0Zyb250ZW5kKCJMb2FkQ29tcGxldGUiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7
CisgICAgSW5zcGVjdG9yVGVzdC5kZWJ1ZygpOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9y
VGVzdC5jcmVhdGVBc3luY1N1aXRlKCJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNo
ZSIpOworCisgICAgZnVuY3Rpb24gYWRkUmVsb2FkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9u
LCBleHByZXNzaW9uLCBwYXR0ZXJuLCBpZ25vcmVDYWNoZSwgc3RhdHVzQ29kZSwgcmVzcG9uc2VT
b3VyY2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUs
IGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoe2lnbm9yZUNhY2hlLCByZXZhbGlk
YXRlQWxsUmVzb3VyY2VzOiB0cnVlfSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
d2FpdEV2ZW50KCJMb2FkQ29tcGxldGUiKS50aGVuKChldmVudCkgPT4geworICAgICAgICAgICAg
ICAgICAgICBsZXQgcmVzb3VyY2UgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBmb3IgKGxl
dCBpdGVtIG9mIFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5yZXNvdXJjZUNvbGxlY3Rpb24p
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJuLnRlc3QoaXRlbS51cmwpKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSBpdGVtOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2UpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgiRmFpbGVkIHRvIGZp
bmQgc3BlY2lmaWMgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZWplY3Qo
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocmVzb3VyY2Ug
aW5zdGFuY2VvZiBXSS5SZXNvdXJjZSwgIlJlc291cmNlIHNob3VsZCBleGlzdC4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5zdGF0dXND
b2RlLCBzdGF0dXNDb2RlLCBgc3RhdHVzQ29kZSBzaG91bGQgYmUgJHtzdGF0dXNDb2RlfWApOwor
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnJl
c3BvbnNlU291cmNlLCByZXNwb25zZVNvdXJjZSwgYHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSAk
e1N0cmluZyhyZXNwb25zZVNvdXJjZSl9YCk7CisgICAgICAgICAgICAgICAgfSkudGhlbihyZXNv
bHZlLCByZWplY3QpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBh
ZGRSZWxvYWRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJSZXNvdXJjZS5SZXNwb25zZVNvdXJj
ZS5NZW1vcnlDYWNoZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiTG9hZCBhIHJlc291cmNlIGZy
b20gdGhlIG1lbW9yeSBjYWNoZSBieSByZWxvYWRpbmcgdGhpcyBwYWdlLiIsCisgICAgICAgIHBh
dHRlcm46IC9jYWNoZWQtc2NyaXB0XC5qcyQvLAorICAgICAgICBpZ25vcmVDYWNoZTogZmFsc2Us
CisgICAgICAgIHJlc3BvbnNlU291cmNlOiBXSS5SZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1v
cnlDYWNoZSwKKyAgICAgICAgc3RhdHVzQ29kZTogMzA0LAorICAgIH0pOworCisgICAgc3VpdGUu
cnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5N
ZW1vcnlDYWNoZWAuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2Ut
bWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTgxLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Ut
c291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS04MS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIzMDJiZjllZDBlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJl
ZC1vbmx5LTgxLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3QgZm9yIGBSZXNvdXJj
ZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRl
OiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorLS0gUnVubmluZyB0ZXN0IGNh
c2U6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCitQQVNTOiBSZXNvdXJjZSBz
aG91bGQgZXhpc3QuCitQQVNTOiBzdGF0dXNDb2RlIHNob3VsZCBiZSAzMDQKK1BBU1M6IHJlc3Bv
bnNlU291cmNlIHNob3VsZCBiZSBTeW1ib2wobWVtb3J5LWNhY2hlKQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNl
LXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktODEuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Ut
c291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS04MS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZWU0ZTJlNzEzYgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3Vy
Y2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS04
MS5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FjaGVkLXNj
cmlwdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2luc3BlY3Rvci10
ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9u
dGVuZCgiTG9hZENvbXBsZXRlIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3Rv
clRlc3QuZGVidWcoKTsKKworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5
bmNTdWl0ZSgiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiKTsKKworICAgIGZ1
bmN0aW9uIGFkZFJlbG9hZFRlc3RDYXNlKHtuYW1lLCBkZXNjcmlwdGlvbiwgZXhwcmVzc2lvbiwg
cGF0dGVybiwgaWdub3JlQ2FjaGUsIHN0YXR1c0NvZGUsIHJlc3BvbnNlU291cmNlfSkgeworICAg
ICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwK
KyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5yZWxvYWRQYWdlKHtpZ25vcmVDYWNoZSwgcmV2YWxpZGF0ZUFsbFJlc291cmNl
czogdHJ1ZX0pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgiTG9h
ZENvbXBsZXRlIikudGhlbigoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHJl
c291cmNlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBXSS5u
ZXR3b3JrTWFuYWdlci5tYWluRnJhbWUucmVzb3VyY2VDb2xsZWN0aW9uKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAocGF0dGVybi50ZXN0KGl0ZW0udXJsKSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlc291cmNlID0gaXRlbTsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc291cmNlKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZhaWwoIkZhaWxlZCB0byBmaW5kIHNwZWNpZmljIHJl
c291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHJlc291cmNlIGluc3RhbmNlb2YgV0ku
UmVzb3VyY2UsICJSZXNvdXJjZSBzaG91bGQgZXhpc3QuIik7CisgICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uuc3RhdHVzQ29kZSwgc3RhdHVzQ29k
ZSwgYHN0YXR1c0NvZGUgc2hvdWxkIGJlICR7c3RhdHVzQ29kZX1gKTsKKyAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5yZXNwb25zZVNvdXJjZSwg
cmVzcG9uc2VTb3VyY2UsIGByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgJHtTdHJpbmcocmVzcG9u
c2VTb3VyY2UpfWApOworICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgYWRkUmVsb2FkVGVzdENh
c2UoeworICAgICAgICBuYW1lOiAiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUi
LAorICAgICAgICBkZXNjcmlwdGlvbjogIkxvYWQgYSByZXNvdXJjZSBmcm9tIHRoZSBtZW1vcnkg
Y2FjaGUgYnkgcmVsb2FkaW5nIHRoaXMgcGFnZS4iLAorICAgICAgICBwYXR0ZXJuOiAvY2FjaGVk
LXNjcmlwdFwuanMkLywKKyAgICAgICAgaWdub3JlQ2FjaGU6IGZhbHNlLAorICAgICAgICByZXNw
b25zZVNvdXJjZTogV0kuUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUsCisgICAg
ICAgIHN0YXR1c0NvZGU6IDMwNCwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0Fu
ZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Cis8cD5UZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLjwv
cD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1y
ZXZhbGlkYXRlLWV4cGlyZWQtb25seS04Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnkt
Y2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktODItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzAyYmY5ZWQwZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVz
cG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS04Mi1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3Vy
Y2UuTWVtb3J5Q2FjaGVgLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUmVzb3VyY2UuUmVz
cG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBSZXNvdXJjZS5S
ZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorUEFTUzogUmVzb3VyY2Ugc2hvdWxkIGV4aXN0Lgor
UEFTUzogc3RhdHVzQ29kZSBzaG91bGQgYmUgMzA0CitQQVNTOiByZXNwb25zZVNvdXJjZSBzaG91
bGQgYmUgU3ltYm9sKG1lbW9yeS1jYWNoZSkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5
LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTgyLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnkt
Y2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktODIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uM2VlNGUyZTcxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNv
dXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktODIuaHRtbApAQCAtMCww
ICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NhY2hlZC1zY3JpcHQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQoIkxvYWRDb21w
bGV0ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7
CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJlc291
cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIik7CisKKyAgICBmdW5jdGlvbiBhZGRSZWxv
YWRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb24sIHBhdHRlcm4sIGlnbm9y
ZUNhY2hlLCBzdGF0dXNDb2RlLCByZXNwb25zZVNvdXJjZX0pIHsKKyAgICAgICAgc3VpdGUuYWRk
VGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwgZGVzY3JpcHRpb24sCisgICAgICAgICAgICB0
ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVs
b2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRhdGVBbGxSZXNvdXJjZXM6IHRydWV9KTsKKyAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoIkxvYWRDb21wbGV0ZSIpLnRo
ZW4oKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9IG51bGw7
CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgV0kubmV0d29ya01hbmFnZXIu
bWFpbkZyYW1lLnJlc291cmNlQ29sbGVjdGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKHBhdHRlcm4udGVzdChpdGVtLnVybCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXNvdXJjZSA9IGl0ZW07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQgdG8gZmluZCBzcGVjaWZpYyByZXNvdXJjZS4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgpOworICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZXhwZWN0VGhhdChyZXNvdXJjZSBpbnN0YW5jZW9mIFdJLlJlc291cmNlLCAiUmVz
b3VyY2Ugc2hvdWxkIGV4aXN0LiIpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1c0NvZGUsIHN0YXR1c0NvZGUsIGBzdGF0dXNDb2Rl
IHNob3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2UucmVzcG9uc2VTb3VyY2UsIHJlc3BvbnNlU291cmNl
LCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlICR7U3RyaW5nKHJlc3BvbnNlU291cmNlKX1gKTsK
KyAgICAgICAgICAgICAgICB9KS50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0pOworICAgIH0KKworICAgIGFkZFJlbG9hZFRlc3RDYXNlKHsKKyAgICAgICAg
bmFtZTogIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIiwKKyAgICAgICAgZGVz
Y3JpcHRpb246ICJMb2FkIGEgcmVzb3VyY2UgZnJvbSB0aGUgbWVtb3J5IGNhY2hlIGJ5IHJlbG9h
ZGluZyB0aGlzIHBhZ2UuIiwKKyAgICAgICAgcGF0dGVybjogL2NhY2hlZC1zY3JpcHRcLmpzJC8s
CisgICAgICAgIGlnbm9yZUNhY2hlOiBmYWxzZSwKKyAgICAgICAgcmVzcG9uc2VTb3VyY2U6IFdJ
LlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlLAorICAgICAgICBzdGF0dXNDb2Rl
OiAzMDQsCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdCBm
b3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC48L3A+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBp
cmVkLW9ubHktODMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRh
dGUtZXhwaXJlZC1vbmx5LTgzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1t
ZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktODMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsOSBAQAorVGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hl
YC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1l
bW9yeUNhY2hlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2Uu
TWVtb3J5Q2FjaGUKK1BBU1M6IFJlc291cmNlIHNob3VsZCBleGlzdC4KK1BBU1M6IHN0YXR1c0Nv
ZGUgc2hvdWxkIGJlIDMwNAorUEFTUzogcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlIFN5bWJvbCht
ZW1vcnktY2FjaGUpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlk
YXRlLWV4cGlyZWQtb25seS04My5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRh
dGUtZXhwaXJlZC1vbmx5LTgzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNh
Y2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTgzLmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9jYWNoZWQtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K1Rlc3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5kKCJMb2FkQ29tcGxldGUiKTsKKworZnVu
Y3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5kZWJ1ZygpOworCisgICAgbGV0IHN1
aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJSZXNvdXJjZS5SZXNwb25zZVNv
dXJjZS5NZW1vcnlDYWNoZSIpOworCisgICAgZnVuY3Rpb24gYWRkUmVsb2FkVGVzdENhc2Uoe25h
bWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9uLCBwYXR0ZXJuLCBpZ25vcmVDYWNoZSwgc3RhdHVz
Q29kZSwgcmVzcG9uc2VTb3VyY2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAg
ICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgdGVzdChyZXNvbHZlLCBy
ZWplY3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoe2lnbm9y
ZUNhY2hlLCByZXZhbGlkYXRlQWxsUmVzb3VyY2VzOiB0cnVlfSk7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJMb2FkQ29tcGxldGUiKS50aGVuKChldmVudCkgPT4g
eworICAgICAgICAgICAgICAgICAgICBsZXQgcmVzb3VyY2UgPSBudWxsOworICAgICAgICAgICAg
ICAgICAgICBmb3IgKGxldCBpdGVtIG9mIFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5yZXNv
dXJjZUNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJuLnRl
c3QoaXRlbS51cmwpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSBp
dGVtOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlm
ICghcmVzb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFp
bCgiRmFpbGVkIHRvIGZpbmQgc3BlY2lmaWMgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICByZWplY3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dFRoYXQocmVzb3VyY2UgaW5zdGFuY2VvZiBXSS5SZXNvdXJjZSwgIlJlc291cmNlIHNob3VsZCBl
eGlzdC4iKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChy
ZXNvdXJjZS5zdGF0dXNDb2RlLCBzdGF0dXNDb2RlLCBgc3RhdHVzQ29kZSBzaG91bGQgYmUgJHtz
dGF0dXNDb2RlfWApOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVx
dWFsKHJlc291cmNlLnJlc3BvbnNlU291cmNlLCByZXNwb25zZVNvdXJjZSwgYHJlc3BvbnNlU291
cmNlIHNob3VsZCBiZSAke1N0cmluZyhyZXNwb25zZVNvdXJjZSl9YCk7CisgICAgICAgICAgICAg
ICAgfSkudGhlbihyZXNvbHZlLCByZWplY3QpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsK
KyAgICB9CisKKyAgICBhZGRSZWxvYWRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJSZXNvdXJj
ZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiTG9h
ZCBhIHJlc291cmNlIGZyb20gdGhlIG1lbW9yeSBjYWNoZSBieSByZWxvYWRpbmcgdGhpcyBwYWdl
LiIsCisgICAgICAgIHBhdHRlcm46IC9jYWNoZWQtc2NyaXB0XC5qcyQvLAorICAgICAgICBpZ25v
cmVDYWNoZTogZmFsc2UsCisgICAgICAgIHJlc3BvbnNlU291cmNlOiBXSS5SZXNvdXJjZS5SZXNw
b25zZVNvdXJjZS5NZW1vcnlDYWNoZSwKKyAgICAgICAgc3RhdHVzQ29kZTogMzA0LAorICAgIH0p
OworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9yIGBSZXNvdXJjZS5S
ZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1y
ZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTg0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVz
b3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25s
eS04NC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LjIzMDJiZjllZDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJl
dmFsaWRhdGUtZXhwaXJlZC1vbmx5LTg0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rl
c3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuCisKKworPT0gUnVu
bmluZyB0ZXN0IHN1aXRlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorLS0g
UnVubmluZyB0ZXN0IGNhc2U6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCitQ
QVNTOiBSZXNvdXJjZSBzaG91bGQgZXhpc3QuCitQQVNTOiBzdGF0dXNDb2RlIHNob3VsZCBiZSAz
MDQKK1BBU1M6IHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSBTeW1ib2wobWVtb3J5LWNhY2hlKQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jl
c291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9u
bHktODQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVz
b3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25s
eS04NC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZWU0ZTJl
NzEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRl
LWV4cGlyZWQtb25seS04NC5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvY2FjaGVkLXNjcmlwdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitUZXN0UGFnZS5kaXNw
YXRjaEV2ZW50VG9Gcm9udGVuZCgiTG9hZENvbXBsZXRlIik7CisKK2Z1bmN0aW9uIHRlc3QoKQor
eworICAgIEluc3BlY3RvclRlc3QuZGVidWcoKTsKKworICAgIGxldCBzdWl0ZSA9IEluc3BlY3Rv
clRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2Fj
aGUiKTsKKworICAgIGZ1bmN0aW9uIGFkZFJlbG9hZFRlc3RDYXNlKHtuYW1lLCBkZXNjcmlwdGlv
biwgZXhwcmVzc2lvbiwgcGF0dGVybiwgaWdub3JlQ2FjaGUsIHN0YXR1c0NvZGUsIHJlc3BvbnNl
U291cmNlfSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1l
LCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHtpZ25vcmVDYWNoZSwgcmV2YWxp
ZGF0ZUFsbFJlc291cmNlczogdHJ1ZX0pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YXdhaXRFdmVudCgiTG9hZENvbXBsZXRlIikudGhlbigoZXZlbnQpID0+IHsKKyAgICAgICAgICAg
ICAgICAgICAgbGV0IHJlc291cmNlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChs
ZXQgaXRlbSBvZiBXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUucmVzb3VyY2VDb2xsZWN0aW9u
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGF0dGVybi50ZXN0KGl0ZW0udXJsKSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlID0gaXRlbTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc291cmNlKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZhaWwoIkZhaWxlZCB0byBm
aW5kIHNwZWNpZmljIHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0
KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHJlc291cmNl
IGluc3RhbmNlb2YgV0kuUmVzb3VyY2UsICJSZXNvdXJjZSBzaG91bGQgZXhpc3QuIik7CisgICAg
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uuc3RhdHVz
Q29kZSwgc3RhdHVzQ29kZSwgYHN0YXR1c0NvZGUgc2hvdWxkIGJlICR7c3RhdHVzQ29kZX1gKTsK
KyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5y
ZXNwb25zZVNvdXJjZSwgcmVzcG9uc2VTb3VyY2UsIGByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUg
JHtTdHJpbmcocmVzcG9uc2VTb3VyY2UpfWApOworICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVz
b2x2ZSwgcmVqZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAg
YWRkUmVsb2FkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiUmVzb3VyY2UuUmVzcG9uc2VTb3Vy
Y2UuTWVtb3J5Q2FjaGUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkxvYWQgYSByZXNvdXJjZSBm
cm9tIHRoZSBtZW1vcnkgY2FjaGUgYnkgcmVsb2FkaW5nIHRoaXMgcGFnZS4iLAorICAgICAgICBw
YXR0ZXJuOiAvY2FjaGVkLXNjcmlwdFwuanMkLywKKyAgICAgICAgaWdub3JlQ2FjaGU6IGZhbHNl
LAorICAgICAgICByZXNwb25zZVNvdXJjZTogV0kuUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVt
b3J5Q2FjaGUsCisgICAgICAgIHN0YXR1c0NvZGU6IDMwNCwKKyAgICB9KTsKKworICAgIHN1aXRl
LnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2Uu
TWVtb3J5Q2FjaGVgLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNl
LW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS04NS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNl
LXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktODUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzAyYmY5ZWQwZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdv
cmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGly
ZWQtb25seS04NS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0IGZvciBgUmVzb3Vy
Y2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0
ZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKKy0tIFJ1bm5pbmcgdGVzdCBj
YXNlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorUEFTUzogUmVzb3VyY2Ug
c2hvdWxkIGV4aXN0LgorUEFTUzogc3RhdHVzQ29kZSBzaG91bGQgYmUgMzA0CitQQVNTOiByZXNw
b25zZVNvdXJjZSBzaG91bGQgYmUgU3ltYm9sKG1lbW9yeS1jYWNoZSkKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25z
ZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTg1Lmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNl
LXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktODUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2VlNGUyZTcxM2IKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291
cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHkt
ODUuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NhY2hlZC1z
Y3JpcHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9pbnNwZWN0b3It
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJv
bnRlbmQoIkxvYWRDb21wbGV0ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0
b3JUZXN0LmRlYnVnKCk7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFz
eW5jU3VpdGUoIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIik7CisKKyAgICBm
dW5jdGlvbiBhZGRSZWxvYWRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb24s
IHBhdHRlcm4sIGlnbm9yZUNhY2hlLCBzdGF0dXNDb2RlLCByZXNwb25zZVNvdXJjZX0pIHsKKyAg
ICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwgZGVzY3JpcHRpb24s
CisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QucmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRhdGVBbGxSZXNvdXJj
ZXM6IHRydWV9KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoIkxv
YWRDb21wbGV0ZSIpLnRoZW4oKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGxldCBy
ZXNvdXJjZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgV0ku
bmV0d29ya01hbmFnZXIubWFpbkZyYW1lLnJlc291cmNlQ29sbGVjdGlvbikgeworICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChpdGVtLnVybCkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXNvdXJjZSA9IGl0ZW07CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkgeworICAgICAgICAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQgdG8gZmluZCBzcGVjaWZpYyBy
ZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgpOworICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXNvdXJjZSBpbnN0YW5jZW9mIFdJ
LlJlc291cmNlLCAiUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LiIpOworICAgICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1c0NvZGUsIHN0YXR1c0Nv
ZGUsIGBzdGF0dXNDb2RlIHNob3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7CisgICAgICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2UucmVzcG9uc2VTb3VyY2Us
IHJlc3BvbnNlU291cmNlLCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlICR7U3RyaW5nKHJlc3Bv
bnNlU291cmNlKX1gKTsKKyAgICAgICAgICAgICAgICB9KS50aGVuKHJlc29sdmUsIHJlamVjdCk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIGFkZFJlbG9hZFRlc3RD
YXNlKHsKKyAgICAgICAgbmFtZTogIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hl
IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJMb2FkIGEgcmVzb3VyY2UgZnJvbSB0aGUgbWVtb3J5
IGNhY2hlIGJ5IHJlbG9hZGluZyB0aGlzIHBhZ2UuIiwKKyAgICAgICAgcGF0dGVybjogL2NhY2hl
ZC1zY3JpcHRcLmpzJC8sCisgICAgICAgIGlnbm9yZUNhY2hlOiBmYWxzZSwKKyAgICAgICAgcmVz
cG9uc2VTb3VyY2U6IFdJLlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlLAorICAg
ICAgICBzdGF0dXNDb2RlOiAzMDQsCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNB
bmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgorPHA+VGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC48
L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUt
cmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktODYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5
LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTg2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJl
c3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktODYtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291
cmNlLk1lbW9yeUNhY2hlYC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFJlc291cmNlLlJl
c3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUmVzb3VyY2Uu
UmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKK1BBU1M6IFJlc291cmNlIHNob3VsZCBleGlzdC4K
K1BBU1M6IHN0YXR1c0NvZGUgc2hvdWxkIGJlIDMwNAorUEFTUzogcmVzcG9uc2VTb3VyY2Ugc2hv
dWxkIGJlIFN5bWJvbChtZW1vcnktY2FjaGUpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9y
eS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS04Ni5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5
LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTg2Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1z
b3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTg2Lmh0bWwKQEAgLTAs
MCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jYWNoZWQtc2NyaXB0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KK1Rlc3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5kKCJMb2FkQ29t
cGxldGUiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5kZWJ1Zygp
OworCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJSZXNv
dXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIpOworCisgICAgZnVuY3Rpb24gYWRkUmVs
b2FkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9uLCBwYXR0ZXJuLCBpZ25v
cmVDYWNoZSwgc3RhdHVzQ29kZSwgcmVzcG9uc2VTb3VyY2V9KSB7CisgICAgICAgIHN1aXRlLmFk
ZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAg
dGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJl
bG9hZFBhZ2Uoe2lnbm9yZUNhY2hlLCByZXZhbGlkYXRlQWxsUmVzb3VyY2VzOiB0cnVlfSk7Cisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJMb2FkQ29tcGxldGUiKS50
aGVuKChldmVudCkgPT4geworICAgICAgICAgICAgICAgICAgICBsZXQgcmVzb3VyY2UgPSBudWxs
OworICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIFdJLm5ldHdvcmtNYW5hZ2Vy
Lm1haW5GcmFtZS5yZXNvdXJjZUNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChwYXR0ZXJuLnRlc3QoaXRlbS51cmwpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVzb3VyY2UgPSBpdGVtOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIGlmICghcmVzb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZmFpbCgiRmFpbGVkIHRvIGZpbmQgc3BlY2lmaWMgcmVzb3VyY2UuIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmV4cGVjdFRoYXQocmVzb3VyY2UgaW5zdGFuY2VvZiBXSS5SZXNvdXJjZSwgIlJl
c291cmNlIHNob3VsZCBleGlzdC4iKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RFcXVhbChyZXNvdXJjZS5zdGF0dXNDb2RlLCBzdGF0dXNDb2RlLCBgc3RhdHVzQ29k
ZSBzaG91bGQgYmUgJHtzdGF0dXNDb2RlfWApOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnJlc3BvbnNlU291cmNlLCByZXNwb25zZVNvdXJj
ZSwgYHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSAke1N0cmluZyhyZXNwb25zZVNvdXJjZSl9YCk7
CisgICAgICAgICAgICAgICAgfSkudGhlbihyZXNvbHZlLCByZWplY3QpOworICAgICAgICAgICAg
fQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBhZGRSZWxvYWRUZXN0Q2FzZSh7CisgICAgICAg
IG5hbWU6ICJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIsCisgICAgICAgIGRl
c2NyaXB0aW9uOiAiTG9hZCBhIHJlc291cmNlIGZyb20gdGhlIG1lbW9yeSBjYWNoZSBieSByZWxv
YWRpbmcgdGhpcyBwYWdlLiIsCisgICAgICAgIHBhdHRlcm46IC9jYWNoZWQtc2NyaXB0XC5qcyQv
LAorICAgICAgICBpZ25vcmVDYWNoZTogZmFsc2UsCisgICAgICAgIHJlc3BvbnNlU291cmNlOiBX
SS5SZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSwKKyAgICAgICAgc3RhdHVzQ29k
ZTogMzA0LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3Qg
Zm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuPC9wPgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhw
aXJlZC1vbmx5LTg3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlk
YXRlLWV4cGlyZWQtb25seS04Ny1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjIzMDJiZjllZDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2Ut
bWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTg3LWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDkgQEAKK1Rlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNo
ZWAuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5N
ZW1vcnlDYWNoZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFJlc291cmNlLlJlc3BvbnNlU291cmNl
Lk1lbW9yeUNhY2hlCitQQVNTOiBSZXNvdXJjZSBzaG91bGQgZXhpc3QuCitQQVNTOiBzdGF0dXND
b2RlIHNob3VsZCBiZSAzMDQKK1BBU1M6IHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSBTeW1ib2wo
bWVtb3J5LWNhY2hlKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxp
ZGF0ZS1leHBpcmVkLW9ubHktODcuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlk
YXRlLWV4cGlyZWQtb25seS04Ny5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi4zZWU0ZTJlNzEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1j
YWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS04Ny5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FjaGVkLXNjcmlwdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiTG9hZENvbXBsZXRlIik7CisKK2Z1
bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZGVidWcoKTsKKworICAgIGxldCBz
dWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUmVzb3VyY2UuUmVzcG9uc2VT
b3VyY2UuTWVtb3J5Q2FjaGUiKTsKKworICAgIGZ1bmN0aW9uIGFkZFJlbG9hZFRlc3RDYXNlKHtu
YW1lLCBkZXNjcmlwdGlvbiwgZXhwcmVzc2lvbiwgcGF0dGVybiwgaWdub3JlQ2FjaGUsIHN0YXR1
c0NvZGUsIHJlc3BvbnNlU291cmNlfSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Cisg
ICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwg
cmVqZWN0KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHtpZ25v
cmVDYWNoZSwgcmV2YWxpZGF0ZUFsbFJlc291cmNlczogdHJ1ZX0pOworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgiTG9hZENvbXBsZXRlIikudGhlbigoZXZlbnQpID0+
IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHJlc291cmNlID0gbnVsbDsKKyAgICAgICAgICAg
ICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUucmVz
b3VyY2VDb2xsZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGF0dGVybi50
ZXN0KGl0ZW0udXJsKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlID0g
aXRlbTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBp
ZiAoIXJlc291cmNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZh
aWwoIkZhaWxlZCB0byBmaW5kIHNwZWNpZmljIHJlc291cmNlLiIpOworICAgICAgICAgICAgICAg
ICAgICAgICAgcmVqZWN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBl
Y3RUaGF0KHJlc291cmNlIGluc3RhbmNlb2YgV0kuUmVzb3VyY2UsICJSZXNvdXJjZSBzaG91bGQg
ZXhpc3QuIik7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwo
cmVzb3VyY2Uuc3RhdHVzQ29kZSwgc3RhdHVzQ29kZSwgYHN0YXR1c0NvZGUgc2hvdWxkIGJlICR7
c3RhdHVzQ29kZX1gKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RF
cXVhbChyZXNvdXJjZS5yZXNwb25zZVNvdXJjZSwgcmVzcG9uc2VTb3VyY2UsIGByZXNwb25zZVNv
dXJjZSBzaG91bGQgYmUgJHtTdHJpbmcocmVzcG9uc2VTb3VyY2UpfWApOworICAgICAgICAgICAg
ICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7
CisgICAgfQorCisgICAgYWRkUmVsb2FkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiUmVzb3Vy
Y2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkxv
YWQgYSByZXNvdXJjZSBmcm9tIHRoZSBtZW1vcnkgY2FjaGUgYnkgcmVsb2FkaW5nIHRoaXMgcGFn
ZS4iLAorICAgICAgICBwYXR0ZXJuOiAvY2FjaGVkLXNjcmlwdFwuanMkLywKKyAgICAgICAgaWdu
b3JlQ2FjaGU6IGZhbHNlLAorICAgICAgICByZXNwb25zZVNvdXJjZTogV0kuUmVzb3VyY2UuUmVz
cG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUsCisgICAgICAgIHN0YXR1c0NvZGU6IDMwNCwKKyAgICB9
KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0IGZvciBgUmVzb3VyY2Uu
UmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2Ut
cmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS04OC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jl
c291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9u
bHktODgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4yMzAyYmY5ZWQwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1y
ZXZhbGlkYXRlLWV4cGlyZWQtb25seS04OC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitU
ZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLgorCisKKz09IFJ1
bm5pbmcgdGVzdCBzdWl0ZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKKy0t
IFJ1bm5pbmcgdGVzdCBjYXNlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQor
UEFTUzogUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LgorUEFTUzogc3RhdHVzQ29kZSBzaG91bGQgYmUg
MzA0CitQQVNTOiByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgU3ltYm9sKG1lbW9yeS1jYWNoZSkK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9y
ZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1v
bmx5LTg4Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jl
c291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9u
bHktODguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2VlNGUy
ZTcxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0
ZS1leHBpcmVkLW9ubHktODguaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL2NhY2hlZC1zY3JpcHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorVGVzdFBhZ2UuZGlz
cGF0Y2hFdmVudFRvRnJvbnRlbmQoIkxvYWRDb21wbGV0ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkK
K3sKKyAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0
b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNh
Y2hlIik7CisKKyAgICBmdW5jdGlvbiBhZGRSZWxvYWRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRp
b24sIGV4cHJlc3Npb24sIHBhdHRlcm4sIGlnbm9yZUNhY2hlLCBzdGF0dXNDb2RlLCByZXNwb25z
ZVNvdXJjZX0pIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFt
ZSwgZGVzY3JpcHRpb24sCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJldmFs
aWRhdGVBbGxSZXNvdXJjZXM6IHRydWV9KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmF3YWl0RXZlbnQoIkxvYWRDb21wbGV0ZSIpLnRoZW4oKGV2ZW50KSA9PiB7CisgICAgICAgICAg
ICAgICAgICAgIGxldCByZXNvdXJjZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGZvciAo
bGV0IGl0ZW0gb2YgV0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1lLnJlc291cmNlQ29sbGVjdGlv
bikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChpdGVtLnVybCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSA9IGl0ZW07CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQgdG8g
ZmluZCBzcGVjaWZpYyByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlamVj
dCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXNvdXJj
ZSBpbnN0YW5jZW9mIFdJLlJlc291cmNlLCAiUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LiIpOworICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1
c0NvZGUsIHN0YXR1c0NvZGUsIGBzdGF0dXNDb2RlIHNob3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7
CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uu
cmVzcG9uc2VTb3VyY2UsIHJlc3BvbnNlU291cmNlLCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJl
ICR7U3RyaW5nKHJlc3BvbnNlU291cmNlKX1gKTsKKyAgICAgICAgICAgICAgICB9KS50aGVuKHJl
c29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAg
IGFkZFJlbG9hZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlJlc291cmNlLlJlc3BvbnNlU291
cmNlLk1lbW9yeUNhY2hlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJMb2FkIGEgcmVzb3VyY2Ug
ZnJvbSB0aGUgbWVtb3J5IGNhY2hlIGJ5IHJlbG9hZGluZyB0aGlzIHBhZ2UuIiwKKyAgICAgICAg
cGF0dGVybjogL2NhY2hlZC1zY3JpcHRcLmpzJC8sCisgICAgICAgIGlnbm9yZUNhY2hlOiBmYWxz
ZSwKKyAgICAgICAgcmVzcG9uc2VTb3VyY2U6IFdJLlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1l
bW9yeUNhY2hlLAorICAgICAgICBzdGF0dXNDb2RlOiAzMDQsCisgICAgfSk7CisKKyAgICBzdWl0
ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNl
Lk1lbW9yeUNhY2hlYC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJj
ZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktODktZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25z
ZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTg5LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3
b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBp
cmVkLW9ubHktODktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdCBmb3IgYFJlc291
cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3Vp
dGU6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCistLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKK1BBU1M6IFJlc291cmNl
IHNob3VsZCBleGlzdC4KK1BBU1M6IHN0YXR1c0NvZGUgc2hvdWxkIGJlIDMwNAorUEFTUzogcmVz
cG9uc2VTb3VyY2Ugc2hvdWxkIGJlIFN5bWJvbChtZW1vcnktY2FjaGUpCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9u
c2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS04OS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25z
ZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTg5Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNv
dXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5
LTg5Lmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jYWNoZWQt
c2NyaXB0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1Rlc3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zy
b250ZW5kKCJMb2FkQ29tcGxldGUiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVj
dG9yVGVzdC5kZWJ1ZygpOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVB
c3luY1N1aXRlKCJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIpOworCisgICAg
ZnVuY3Rpb24gYWRkUmVsb2FkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9u
LCBwYXR0ZXJuLCBpZ25vcmVDYWNoZSwgc3RhdHVzQ29kZSwgcmVzcG9uc2VTb3VyY2V9KSB7Cisg
ICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9u
LAorICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoe2lnbm9yZUNhY2hlLCByZXZhbGlkYXRlQWxsUmVzb3Vy
Y2VzOiB0cnVlfSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJM
b2FkQ29tcGxldGUiKS50aGVuKChldmVudCkgPT4geworICAgICAgICAgICAgICAgICAgICBsZXQg
cmVzb3VyY2UgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIFdJ
Lm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5yZXNvdXJjZUNvbGxlY3Rpb24pIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJuLnRlc3QoaXRlbS51cmwpKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSBpdGVtOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2UpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgiRmFpbGVkIHRvIGZpbmQgc3BlY2lmaWMg
cmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocmVzb3VyY2UgaW5zdGFuY2VvZiBX
SS5SZXNvdXJjZSwgIlJlc291cmNlIHNob3VsZCBleGlzdC4iKTsKKyAgICAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5zdGF0dXNDb2RlLCBzdGF0dXND
b2RlLCBgc3RhdHVzQ29kZSBzaG91bGQgYmUgJHtzdGF0dXNDb2RlfWApOworICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnJlc3BvbnNlU291cmNl
LCByZXNwb25zZVNvdXJjZSwgYHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSAke1N0cmluZyhyZXNw
b25zZVNvdXJjZSl9YCk7CisgICAgICAgICAgICAgICAgfSkudGhlbihyZXNvbHZlLCByZWplY3Qp
OworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBhZGRSZWxvYWRUZXN0
Q2FzZSh7CisgICAgICAgIG5hbWU6ICJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNo
ZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiTG9hZCBhIHJlc291cmNlIGZyb20gdGhlIG1lbW9y
eSBjYWNoZSBieSByZWxvYWRpbmcgdGhpcyBwYWdlLiIsCisgICAgICAgIHBhdHRlcm46IC9jYWNo
ZWQtc2NyaXB0XC5qcyQvLAorICAgICAgICBpZ25vcmVDYWNoZTogZmFsc2UsCisgICAgICAgIHJl
c3BvbnNlU291cmNlOiBXSS5SZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSwKKyAg
ICAgICAgc3RhdHVzQ29kZTogMzA0LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2Vz
QW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KKzxwPlRlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAu
PC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hl
LXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5
LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzAyYmY5ZWQwZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVz
cG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS05LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJj
ZS5NZW1vcnlDYWNoZWAuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBSZXNvdXJjZS5SZXNw
b25zZVNvdXJjZS5NZW1vcnlDYWNoZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFJlc291cmNlLlJl
c3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCitQQVNTOiBSZXNvdXJjZSBzaG91bGQgZXhpc3QuCitQ
QVNTOiBzdGF0dXNDb2RlIHNob3VsZCBiZSAzMDQKK1BBU1M6IHJlc3BvbnNlU291cmNlIHNob3Vs
ZCBiZSBTeW1ib2wobWVtb3J5LWNhY2hlKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnkt
Y2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktOS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNh
Y2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uM2VlNGUyZTcxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJj
ZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktOS5odG1sCkBAIC0wLDAgKzEs
NTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FjaGVkLXNjcmlwdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CitUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiTG9hZENvbXBsZXRl
Iik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZGVidWcoKTsKKwor
ICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUmVzb3VyY2Uu
UmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiKTsKKworICAgIGZ1bmN0aW9uIGFkZFJlbG9hZFRl
c3RDYXNlKHtuYW1lLCBkZXNjcmlwdGlvbiwgZXhwcmVzc2lvbiwgcGF0dGVybiwgaWdub3JlQ2Fj
aGUsIHN0YXR1c0NvZGUsIHJlc3BvbnNlU291cmNlfSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0
Q2FzZSh7CisgICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIHRlc3Qo
cmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQ
YWdlKHtpZ25vcmVDYWNoZSwgcmV2YWxpZGF0ZUFsbFJlc291cmNlczogdHJ1ZX0pOworICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgiTG9hZENvbXBsZXRlIikudGhlbigo
ZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHJlc291cmNlID0gbnVsbDsKKyAg
ICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBXSS5uZXR3b3JrTWFuYWdlci5tYWlu
RnJhbWUucmVzb3VyY2VDb2xsZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
cGF0dGVybi50ZXN0KGl0ZW0udXJsKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
c291cmNlID0gaXRlbTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICBpZiAoIXJlc291cmNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmZhaWwoIkZhaWxlZCB0byBmaW5kIHNwZWNpZmljIHJlc291cmNlLiIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3RUaGF0KHJlc291cmNlIGluc3RhbmNlb2YgV0kuUmVzb3VyY2UsICJSZXNvdXJj
ZSBzaG91bGQgZXhpc3QuIik7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0RXF1YWwocmVzb3VyY2Uuc3RhdHVzQ29kZSwgc3RhdHVzQ29kZSwgYHN0YXR1c0NvZGUgc2hv
dWxkIGJlICR7c3RhdHVzQ29kZX1gKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RFcXVhbChyZXNvdXJjZS5yZXNwb25zZVNvdXJjZSwgcmVzcG9uc2VTb3VyY2UsIGBy
ZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgJHtTdHJpbmcocmVzcG9uc2VTb3VyY2UpfWApOworICAg
ICAgICAgICAgICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgYWRkUmVsb2FkVGVzdENhc2UoeworICAgICAgICBuYW1l
OiAiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiLAorICAgICAgICBkZXNjcmlw
dGlvbjogIkxvYWQgYSByZXNvdXJjZSBmcm9tIHRoZSBtZW1vcnkgY2FjaGUgYnkgcmVsb2FkaW5n
IHRoaXMgcGFnZS4iLAorICAgICAgICBwYXR0ZXJuOiAvY2FjaGVkLXNjcmlwdFwuanMkLywKKyAg
ICAgICAgaWdub3JlQ2FjaGU6IGZhbHNlLAorICAgICAgICByZXNwb25zZVNvdXJjZTogV0kuUmVz
b3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUsCisgICAgICAgIHN0YXR1c0NvZGU6IDMw
NCwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0IGZvciBg
UmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLjwvcD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
cmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQt
b25seS05MC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1l
eHBpcmVkLW9ubHktOTAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4yMzAyYmY5ZWQwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9y
eS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS05MC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw5IEBACitUZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLgor
CisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5
Q2FjaGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1v
cnlDYWNoZQorUEFTUzogUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LgorUEFTUzogc3RhdHVzQ29kZSBz
aG91bGQgYmUgMzA0CitQQVNTOiByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgU3ltYm9sKG1lbW9y
eS1jYWNoZSkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUt
ZXhwaXJlZC1vbmx5LTkwLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1l
eHBpcmVkLW9ubHktOTAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uM2VlNGUyZTcxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUt
cmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktOTAuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2NhY2hlZC1zY3JpcHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorVGVz
dFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQoIkxvYWRDb21wbGV0ZSIpOworCitmdW5jdGlv
biB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAgICBsZXQgc3VpdGUg
PSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJlc291cmNlLlJlc3BvbnNlU291cmNl
Lk1lbW9yeUNhY2hlIik7CisKKyAgICBmdW5jdGlvbiBhZGRSZWxvYWRUZXN0Q2FzZSh7bmFtZSwg
ZGVzY3JpcHRpb24sIGV4cHJlc3Npb24sIHBhdHRlcm4sIGlnbm9yZUNhY2hlLCBzdGF0dXNDb2Rl
LCByZXNwb25zZVNvdXJjZX0pIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAg
ICAgICAgbmFtZSwgZGVzY3JpcHRpb24sCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVj
dCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSh7aWdub3JlQ2Fj
aGUsIHJldmFsaWRhdGVBbGxSZXNvdXJjZXM6IHRydWV9KTsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmF3YWl0RXZlbnQoIkxvYWRDb21wbGV0ZSIpLnRoZW4oKGV2ZW50KSA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9IG51bGw7CisgICAgICAgICAgICAgICAg
ICAgIGZvciAobGV0IGl0ZW0gb2YgV0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1lLnJlc291cmNl
Q29sbGVjdGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChp
dGVtLnVybCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSA9IGl0ZW07
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFy
ZXNvdXJjZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJG
YWlsZWQgdG8gZmluZCBzcGVjaWZpYyByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJlamVjdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhh
dChyZXNvdXJjZSBpbnN0YW5jZW9mIFdJLlJlc291cmNlLCAiUmVzb3VyY2Ugc2hvdWxkIGV4aXN0
LiIpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291
cmNlLnN0YXR1c0NvZGUsIHN0YXR1c0NvZGUsIGBzdGF0dXNDb2RlIHNob3VsZCBiZSAke3N0YXR1
c0NvZGV9YCk7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwo
cmVzb3VyY2UucmVzcG9uc2VTb3VyY2UsIHJlc3BvbnNlU291cmNlLCBgcmVzcG9uc2VTb3VyY2Ug
c2hvdWxkIGJlICR7U3RyaW5nKHJlc3BvbnNlU291cmNlKX1gKTsKKyAgICAgICAgICAgICAgICB9
KS50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAg
IH0KKworICAgIGFkZFJlbG9hZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlJlc291cmNlLlJl
c3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJMb2FkIGEg
cmVzb3VyY2UgZnJvbSB0aGUgbWVtb3J5IGNhY2hlIGJ5IHJlbG9hZGluZyB0aGlzIHBhZ2UuIiwK
KyAgICAgICAgcGF0dGVybjogL2NhY2hlZC1zY3JpcHRcLmpzJC8sCisgICAgICAgIGlnbm9yZUNh
Y2hlOiBmYWxzZSwKKyAgICAgICAgcmVzcG9uc2VTb3VyY2U6IFdJLlJlc291cmNlLlJlc3BvbnNl
U291cmNlLk1lbW9yeUNhY2hlLAorICAgICAgICBzdGF0dXNDb2RlOiAzMDQsCisgICAgfSk7CisK
KyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdCBmb3IgYFJlc291cmNlLlJlc3Bv
bnNlU291cmNlLk1lbW9yeUNhY2hlYC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3Bv
bnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktOTEtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJj
ZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTkx
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjMw
MmJmOWVkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxp
ZGF0ZS1leHBpcmVkLW9ubHktOTEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdCBm
b3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC4KKworCis9PSBSdW5uaW5n
IHRlc3Qgc3VpdGU6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCistLSBSdW5u
aW5nIHRlc3QgY2FzZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKK1BBU1M6
IFJlc291cmNlIHNob3VsZCBleGlzdC4KK1BBU1M6IHN0YXR1c0NvZGUgc2hvdWxkIGJlIDMwNAor
UEFTUzogcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlIFN5bWJvbChtZW1vcnktY2FjaGUpCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3Vy
Y2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS05
MS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJj
ZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTkx
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNlZTRlMmU3MTNi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0
d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhw
aXJlZC1vbmx5LTkxLmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9jYWNoZWQtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1Rlc3RQYWdlLmRpc3BhdGNo
RXZlbnRUb0Zyb250ZW5kKCJMb2FkQ29tcGxldGUiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7Cisg
ICAgSW5zcGVjdG9yVGVzdC5kZWJ1ZygpOworCisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVz
dC5jcmVhdGVBc3luY1N1aXRlKCJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIp
OworCisgICAgZnVuY3Rpb24gYWRkUmVsb2FkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBl
eHByZXNzaW9uLCBwYXR0ZXJuLCBpZ25vcmVDYWNoZSwgc3RhdHVzQ29kZSwgcmVzcG9uc2VTb3Vy
Y2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRl
c2NyaXB0aW9uLAorICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoe2lnbm9yZUNhY2hlLCByZXZhbGlkYXRl
QWxsUmVzb3VyY2VzOiB0cnVlfSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hd2Fp
dEV2ZW50KCJMb2FkQ29tcGxldGUiKS50aGVuKChldmVudCkgPT4geworICAgICAgICAgICAgICAg
ICAgICBsZXQgcmVzb3VyY2UgPSBudWxsOworICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBp
dGVtIG9mIFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5yZXNvdXJjZUNvbGxlY3Rpb24pIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJuLnRlc3QoaXRlbS51cmwpKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSBpdGVtOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICghcmVzb3VyY2UpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgiRmFpbGVkIHRvIGZpbmQg
c3BlY2lmaWMgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocmVzb3VyY2UgaW5z
dGFuY2VvZiBXSS5SZXNvdXJjZSwgIlJlc291cmNlIHNob3VsZCBleGlzdC4iKTsKKyAgICAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5zdGF0dXNDb2Rl
LCBzdGF0dXNDb2RlLCBgc3RhdHVzQ29kZSBzaG91bGQgYmUgJHtzdGF0dXNDb2RlfWApOworICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnJlc3Bv
bnNlU291cmNlLCByZXNwb25zZVNvdXJjZSwgYHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSAke1N0
cmluZyhyZXNwb25zZVNvdXJjZSl9YCk7CisgICAgICAgICAgICAgICAgfSkudGhlbihyZXNvbHZl
LCByZWplY3QpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisKKyAgICBhZGRS
ZWxvYWRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5N
ZW1vcnlDYWNoZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiTG9hZCBhIHJlc291cmNlIGZyb20g
dGhlIG1lbW9yeSBjYWNoZSBieSByZWxvYWRpbmcgdGhpcyBwYWdlLiIsCisgICAgICAgIHBhdHRl
cm46IC9jYWNoZWQtc2NyaXB0XC5qcyQvLAorICAgICAgICBpZ25vcmVDYWNoZTogZmFsc2UsCisg
ICAgICAgIHJlc3BvbnNlU291cmNlOiBXSS5SZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlD
YWNoZSwKKyAgICAgICAgc3RhdHVzQ29kZTogMzA0LAorICAgIH0pOworCisgICAgc3VpdGUucnVu
VGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1v
cnlDYWNoZWAuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVt
b3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTkyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291
cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS05Mi1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIzMDJiZjllZDBlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9y
ZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1v
bmx5LTkyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3QgZm9yIGBSZXNvdXJjZS5S
ZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBS
ZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6
IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCitQQVNTOiBSZXNvdXJjZSBzaG91
bGQgZXhpc3QuCitQQVNTOiBzdGF0dXNDb2RlIHNob3VsZCBiZSAzMDQKK1BBU1M6IHJlc3BvbnNl
U291cmNlIHNob3VsZCBiZSBTeW1ib2wobWVtb3J5LWNhY2hlKQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNv
dXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktOTIuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291
cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS05Mi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZWU0ZTJlNzEzYgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2Ut
cmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS05Mi5o
dG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2FjaGVkLXNjcmlw
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVu
ZCgiTG9hZENvbXBsZXRlIik7CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRl
c3QuZGVidWcoKTsKKworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNT
dWl0ZSgiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiKTsKKworICAgIGZ1bmN0
aW9uIGFkZFJlbG9hZFRlc3RDYXNlKHtuYW1lLCBkZXNjcmlwdGlvbiwgZXhwcmVzc2lvbiwgcGF0
dGVybiwgaWdub3JlQ2FjaGUsIHN0YXR1c0NvZGUsIHJlc3BvbnNlU291cmNlfSkgeworICAgICAg
ICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKKyAg
ICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5yZWxvYWRQYWdlKHtpZ25vcmVDYWNoZSwgcmV2YWxpZGF0ZUFsbFJlc291cmNlczog
dHJ1ZX0pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCgiTG9hZENv
bXBsZXRlIikudGhlbigoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IHJlc291
cmNlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBvZiBXSS5uZXR3
b3JrTWFuYWdlci5tYWluRnJhbWUucmVzb3VyY2VDb2xsZWN0aW9uKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAocGF0dGVybi50ZXN0KGl0ZW0udXJsKSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlc291cmNlID0gaXRlbTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc291cmNlKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmZhaWwoIkZhaWxlZCB0byBmaW5kIHNwZWNpZmljIHJlc291
cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7CisgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHJlc291cmNlIGluc3RhbmNlb2YgV0kuUmVz
b3VyY2UsICJSZXNvdXJjZSBzaG91bGQgZXhpc3QuIik7CisgICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uuc3RhdHVzQ29kZSwgc3RhdHVzQ29kZSwg
YHN0YXR1c0NvZGUgc2hvdWxkIGJlICR7c3RhdHVzQ29kZX1gKTsKKyAgICAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5yZXNwb25zZVNvdXJjZSwgcmVz
cG9uc2VTb3VyY2UsIGByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgJHtTdHJpbmcocmVzcG9uc2VT
b3VyY2UpfWApOworICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgYWRkUmVsb2FkVGVzdENhc2Uo
eworICAgICAgICBuYW1lOiAiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiLAor
ICAgICAgICBkZXNjcmlwdGlvbjogIkxvYWQgYSByZXNvdXJjZSBmcm9tIHRoZSBtZW1vcnkgY2Fj
aGUgYnkgcmVsb2FkaW5nIHRoaXMgcGFnZS4iLAorICAgICAgICBwYXR0ZXJuOiAvY2FjaGVkLXNj
cmlwdFwuanMkLywKKyAgICAgICAgaWdub3JlQ2FjaGU6IGZhbHNlLAorICAgICAgICByZXNwb25z
ZVNvdXJjZTogV0kuUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUsCisgICAgICAg
IHN0YXR1c0NvZGU6IDMwNCwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZp
bmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Cis8cD5UZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLjwvcD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZh
bGlkYXRlLWV4cGlyZWQtb25seS05My1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2Fj
aGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktOTMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzAyYmY5ZWQwZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9u
c2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS05My1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2Uu
TWVtb3J5Q2FjaGVgLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogUmVzb3VyY2UuUmVzcG9u
c2VTb3VyY2UuTWVtb3J5Q2FjaGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBSZXNvdXJjZS5SZXNw
b25zZVNvdXJjZS5NZW1vcnlDYWNoZQorUEFTUzogUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LgorUEFT
Uzogc3RhdHVzQ29kZSBzaG91bGQgYmUgMzA0CitQQVNTOiByZXNwb25zZVNvdXJjZSBzaG91bGQg
YmUgU3ltYm9sKG1lbW9yeS1jYWNoZSkKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNh
Y2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTkzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2Fj
aGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktOTMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uM2VlNGUyZTcxM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJj
ZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktOTMuaHRtbApAQCAtMCwwICsx
LDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NhY2hlZC1zY3JpcHQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQoIkxvYWRDb21wbGV0
ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7CisK
KyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJlc291cmNl
LlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIik7CisKKyAgICBmdW5jdGlvbiBhZGRSZWxvYWRU
ZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb24sIHBhdHRlcm4sIGlnbm9yZUNh
Y2hlLCBzdGF0dXNDb2RlLCByZXNwb25zZVNvdXJjZX0pIHsKKyAgICAgICAgc3VpdGUuYWRkVGVz
dENhc2UoeworICAgICAgICAgICAgbmFtZSwgZGVzY3JpcHRpb24sCisgICAgICAgICAgICB0ZXN0
KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2Fk
UGFnZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRhdGVBbGxSZXNvdXJjZXM6IHRydWV9KTsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoIkxvYWRDb21wbGV0ZSIpLnRoZW4o
KGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9IG51bGw7Cisg
ICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgV0kubmV0d29ya01hbmFnZXIubWFp
bkZyYW1lLnJlc291cmNlQ29sbGVjdGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHBhdHRlcm4udGVzdChpdGVtLnVybCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXNvdXJjZSA9IGl0ZW07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICAgICAgaWYgKCFyZXNvdXJjZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5mYWlsKCJGYWlsZWQgdG8gZmluZCBzcGVjaWZpYyByZXNvdXJjZS4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJlamVjdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0VGhhdChyZXNvdXJjZSBpbnN0YW5jZW9mIFdJLlJlc291cmNlLCAiUmVzb3Vy
Y2Ugc2hvdWxkIGV4aXN0LiIpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1c0NvZGUsIHN0YXR1c0NvZGUsIGBzdGF0dXNDb2RlIHNo
b3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuZXhwZWN0RXF1YWwocmVzb3VyY2UucmVzcG9uc2VTb3VyY2UsIHJlc3BvbnNlU291cmNlLCBg
cmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlICR7U3RyaW5nKHJlc3BvbnNlU291cmNlKX1gKTsKKyAg
ICAgICAgICAgICAgICB9KS50aGVuKHJlc29sdmUsIHJlamVjdCk7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0pOworICAgIH0KKworICAgIGFkZFJlbG9hZFRlc3RDYXNlKHsKKyAgICAgICAgbmFt
ZTogIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIiwKKyAgICAgICAgZGVzY3Jp
cHRpb246ICJMb2FkIGEgcmVzb3VyY2UgZnJvbSB0aGUgbWVtb3J5IGNhY2hlIGJ5IHJlbG9hZGlu
ZyB0aGlzIHBhZ2UuIiwKKyAgICAgICAgcGF0dGVybjogL2NhY2hlZC1zY3JpcHRcLmpzJC8sCisg
ICAgICAgIGlnbm9yZUNhY2hlOiBmYWxzZSwKKyAgICAgICAgcmVzcG9uc2VTb3VyY2U6IFdJLlJl
c291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlLAorICAgICAgICBzdGF0dXNDb2RlOiAz
MDQsCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdCBmb3Ig
YFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC48L3A+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3Jr
L3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVk
LW9ubHktOTQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUt
ZXhwaXJlZC1vbmx5LTk0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1v
cnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktOTQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsOSBAQAorVGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC4K
KworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9y
eUNhY2hlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVt
b3J5Q2FjaGUKK1BBU1M6IFJlc291cmNlIHNob3VsZCBleGlzdC4KK1BBU1M6IHN0YXR1c0NvZGUg
c2hvdWxkIGJlIDMwNAorUEFTUzogcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlIFN5bWJvbChtZW1v
cnktY2FjaGUpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRl
LWV4cGlyZWQtb25seS05NC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUt
ZXhwaXJlZC1vbmx5LTk0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hl
LXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTk0Lmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9jYWNoZWQtc2NyaXB0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK1Rl
c3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5kKCJMb2FkQ29tcGxldGUiKTsKKworZnVuY3Rp
b24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5kZWJ1ZygpOworCisgICAgbGV0IHN1aXRl
ID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJSZXNvdXJjZS5SZXNwb25zZVNvdXJj
ZS5NZW1vcnlDYWNoZSIpOworCisgICAgZnVuY3Rpb24gYWRkUmVsb2FkVGVzdENhc2Uoe25hbWUs
IGRlc2NyaXB0aW9uLCBleHByZXNzaW9uLCBwYXR0ZXJuLCBpZ25vcmVDYWNoZSwgc3RhdHVzQ29k
ZSwgcmVzcG9uc2VTb3VyY2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAg
ICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWpl
Y3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9hZFBhZ2Uoe2lnbm9yZUNh
Y2hlLCByZXZhbGlkYXRlQWxsUmVzb3VyY2VzOiB0cnVlfSk7CisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJMb2FkQ29tcGxldGUiKS50aGVuKChldmVudCkgPT4gewor
ICAgICAgICAgICAgICAgICAgICBsZXQgcmVzb3VyY2UgPSBudWxsOworICAgICAgICAgICAgICAg
ICAgICBmb3IgKGxldCBpdGVtIG9mIFdJLm5ldHdvcmtNYW5hZ2VyLm1haW5GcmFtZS5yZXNvdXJj
ZUNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXR0ZXJuLnRlc3Qo
aXRlbS51cmwpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgPSBpdGVt
OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGlmICgh
cmVzb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgi
RmFpbGVkIHRvIGZpbmQgc3BlY2lmaWMgcmVzb3VyY2UuIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICByZWplY3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRo
YXQocmVzb3VyY2UgaW5zdGFuY2VvZiBXSS5SZXNvdXJjZSwgIlJlc291cmNlIHNob3VsZCBleGlz
dC4iKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNv
dXJjZS5zdGF0dXNDb2RlLCBzdGF0dXNDb2RlLCBgc3RhdHVzQ29kZSBzaG91bGQgYmUgJHtzdGF0
dXNDb2RlfWApOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFs
KHJlc291cmNlLnJlc3BvbnNlU291cmNlLCByZXNwb25zZVNvdXJjZSwgYHJlc3BvbnNlU291cmNl
IHNob3VsZCBiZSAke1N0cmluZyhyZXNwb25zZVNvdXJjZSl9YCk7CisgICAgICAgICAgICAgICAg
fSkudGhlbihyZXNvbHZlLCByZWplY3QpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAg
ICB9CisKKyAgICBhZGRSZWxvYWRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJSZXNvdXJjZS5S
ZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiTG9hZCBh
IHJlc291cmNlIGZyb20gdGhlIG1lbW9yeSBjYWNoZSBieSByZWxvYWRpbmcgdGhpcyBwYWdlLiIs
CisgICAgICAgIHBhdHRlcm46IC9jYWNoZWQtc2NyaXB0XC5qcyQvLAorICAgICAgICBpZ25vcmVD
YWNoZTogZmFsc2UsCisgICAgICAgIHJlc3BvbnNlU291cmNlOiBXSS5SZXNvdXJjZS5SZXNwb25z
ZVNvdXJjZS5NZW1vcnlDYWNoZSwKKyAgICAgICAgc3RhdHVzQ29kZTogMzA0LAorICAgIH0pOwor
CisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9yIGBSZXNvdXJjZS5SZXNw
b25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNw
b25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTk1LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3Vy
Y2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS05
NS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjIz
MDJiZjllZDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFs
aWRhdGUtZXhwaXJlZC1vbmx5LTk1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3Qg
Zm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuCisKKworPT0gUnVubmlu
ZyB0ZXN0IHN1aXRlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlCitQQVNT
OiBSZXNvdXJjZSBzaG91bGQgZXhpc3QuCitQQVNTOiBzdGF0dXNDb2RlIHNob3VsZCBiZSAzMDQK
K1BBU1M6IHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSBTeW1ib2wobWVtb3J5LWNhY2hlKQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291
cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHkt
OTUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3Vy
Y2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS05
NS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zZWU0ZTJlNzEz
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25l
dHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4
cGlyZWQtb25seS05NS5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvY2FjaGVkLXNjcmlwdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitUZXN0UGFnZS5kaXNwYXRj
aEV2ZW50VG9Gcm9udGVuZCgiTG9hZENvbXBsZXRlIik7CisKK2Z1bmN0aW9uIHRlc3QoKQorewor
ICAgIEluc3BlY3RvclRlc3QuZGVidWcoKTsKKworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRl
c3QuY3JlYXRlQXN5bmNTdWl0ZSgiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUi
KTsKKworICAgIGZ1bmN0aW9uIGFkZFJlbG9hZFRlc3RDYXNlKHtuYW1lLCBkZXNjcmlwdGlvbiwg
ZXhwcmVzc2lvbiwgcGF0dGVybiwgaWdub3JlQ2FjaGUsIHN0YXR1c0NvZGUsIHJlc3BvbnNlU291
cmNlfSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLCBk
ZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHtpZ25vcmVDYWNoZSwgcmV2YWxpZGF0
ZUFsbFJlc291cmNlczogdHJ1ZX0pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdh
aXRFdmVudCgiTG9hZENvbXBsZXRlIikudGhlbigoZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgbGV0IHJlc291cmNlID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQg
aXRlbSBvZiBXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUucmVzb3VyY2VDb2xsZWN0aW9uKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGF0dGVybi50ZXN0KGl0ZW0udXJsKSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlID0gaXRlbTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc291cmNlKSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZhaWwoIkZhaWxlZCB0byBmaW5k
IHNwZWNpZmljIHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCk7
CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHJlc291cmNlIGlu
c3RhbmNlb2YgV0kuUmVzb3VyY2UsICJSZXNvdXJjZSBzaG91bGQgZXhpc3QuIik7CisgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2Uuc3RhdHVzQ29k
ZSwgc3RhdHVzQ29kZSwgYHN0YXR1c0NvZGUgc2hvdWxkIGJlICR7c3RhdHVzQ29kZX1gKTsKKyAg
ICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChyZXNvdXJjZS5yZXNw
b25zZVNvdXJjZSwgcmVzcG9uc2VTb3VyY2UsIGByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgJHtT
dHJpbmcocmVzcG9uc2VTb3VyY2UpfWApOworICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVzb2x2
ZSwgcmVqZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgYWRk
UmVsb2FkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2Uu
TWVtb3J5Q2FjaGUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkxvYWQgYSByZXNvdXJjZSBmcm9t
IHRoZSBtZW1vcnkgY2FjaGUgYnkgcmVsb2FkaW5nIHRoaXMgcGFnZS4iLAorICAgICAgICBwYXR0
ZXJuOiAvY2FjaGVkLXNjcmlwdFwuanMkLywKKyAgICAgICAgaWdub3JlQ2FjaGU6IGZhbHNlLAor
ICAgICAgICByZXNwb25zZVNvdXJjZTogV0kuUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5
Q2FjaGUsCisgICAgICAgIHN0YXR1c0NvZGU6IDMwNCwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1
blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVt
b3J5Q2FjaGVgLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1l
bW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS05Ni1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNv
dXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktOTYtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yMzAyYmY5ZWQwZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsv
cmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQt
b25seS05Ni1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0IGZvciBgUmVzb3VyY2Uu
UmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTog
UmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNl
OiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorUEFTUzogUmVzb3VyY2Ugc2hv
dWxkIGV4aXN0LgorUEFTUzogc3RhdHVzQ29kZSBzaG91bGQgYmUgMzA0CitQQVNTOiByZXNwb25z
ZVNvdXJjZSBzaG91bGQgYmUgU3ltYm9sKG1lbW9yeS1jYWNoZSkKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1z
b3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTk2Lmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNv
dXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktOTYuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2VlNGUyZTcxM2IKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNl
LXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktOTYu
aHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NhY2hlZC1zY3Jp
cHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRl
bmQoIkxvYWRDb21wbGV0ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JU
ZXN0LmRlYnVnKCk7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5j
U3VpdGUoIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIik7CisKKyAgICBmdW5j
dGlvbiBhZGRSZWxvYWRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIGV4cHJlc3Npb24sIHBh
dHRlcm4sIGlnbm9yZUNhY2hlLCBzdGF0dXNDb2RlLCByZXNwb25zZVNvdXJjZX0pIHsKKyAgICAg
ICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwgZGVzY3JpcHRpb24sCisg
ICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QucmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRhdGVBbGxSZXNvdXJjZXM6
IHRydWV9KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3YWl0RXZlbnQoIkxvYWRD
b21wbGV0ZSIpLnRoZW4oKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAgICAgICAgIGxldCByZXNv
dXJjZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgV0kubmV0
d29ya01hbmFnZXIubWFpbkZyYW1lLnJlc291cmNlQ29sbGVjdGlvbikgeworICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChpdGVtLnVybCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXNvdXJjZSA9IGl0ZW07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQgdG8gZmluZCBzcGVjaWZpYyByZXNv
dXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgpOworICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXNvdXJjZSBpbnN0YW5jZW9mIFdJLlJl
c291cmNlLCAiUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LiIpOworICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1c0NvZGUsIHN0YXR1c0NvZGUs
IGBzdGF0dXNDb2RlIHNob3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7CisgICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2UucmVzcG9uc2VTb3VyY2UsIHJl
c3BvbnNlU291cmNlLCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlICR7U3RyaW5nKHJlc3BvbnNl
U291cmNlKX1gKTsKKyAgICAgICAgICAgICAgICB9KS50aGVuKHJlc29sdmUsIHJlamVjdCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIGFkZFJlbG9hZFRlc3RDYXNl
KHsKKyAgICAgICAgbmFtZTogIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlIiwK
KyAgICAgICAgZGVzY3JpcHRpb246ICJMb2FkIGEgcmVzb3VyY2UgZnJvbSB0aGUgbWVtb3J5IGNh
Y2hlIGJ5IHJlbG9hZGluZyB0aGlzIHBhZ2UuIiwKKyAgICAgICAgcGF0dGVybjogL2NhY2hlZC1z
Y3JpcHRcLmpzJC8sCisgICAgICAgIGlnbm9yZUNhY2hlOiBmYWxzZSwKKyAgICAgICAgcmVzcG9u
c2VTb3VyY2U6IFdJLlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlLAorICAgICAg
ICBzdGF0dXNDb2RlOiAzMDQsCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRG
aW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgorPHA+VGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hlYC48L3A+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2
YWxpZGF0ZS1leHBpcmVkLW9ubHktOTctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNh
Y2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTk3LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjMwMmJmOWVkMGUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3Bv
bnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHktOTctZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNl
Lk1lbW9yeUNhY2hlYC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFJlc291cmNlLlJlc3Bv
bnNlU291cmNlLk1lbW9yeUNhY2hlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUmVzb3VyY2UuUmVz
cG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKK1BBU1M6IFJlc291cmNlIHNob3VsZCBleGlzdC4KK1BB
U1M6IHN0YXR1c0NvZGUgc2hvdWxkIGJlIDMwNAorUEFTUzogcmVzcG9uc2VTb3VyY2Ugc2hvdWxk
IGJlIFN5bWJvbChtZW1vcnktY2FjaGUpCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1j
YWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS05Ny5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNh
Y2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTk3Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjNlZTRlMmU3MTNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3Vy
Y2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTk3Lmh0bWwKQEAgLTAsMCAr
MSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jYWNoZWQtc2NyaXB0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK1Rlc3RQYWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5kKCJMb2FkQ29tcGxl
dGUiKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5kZWJ1ZygpOwor
CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJSZXNvdXJj
ZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIpOworCisgICAgZnVuY3Rpb24gYWRkUmVsb2Fk
VGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9uLCBwYXR0ZXJuLCBpZ25vcmVD
YWNoZSwgc3RhdHVzQ29kZSwgcmVzcG9uc2VTb3VyY2V9KSB7CisgICAgICAgIHN1aXRlLmFkZFRl
c3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWUsIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgdGVz
dChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnJlbG9h
ZFBhZ2Uoe2lnbm9yZUNhY2hlLCByZXZhbGlkYXRlQWxsUmVzb3VyY2VzOiB0cnVlfSk7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KCJMb2FkQ29tcGxldGUiKS50aGVu
KChldmVudCkgPT4geworICAgICAgICAgICAgICAgICAgICBsZXQgcmVzb3VyY2UgPSBudWxsOwor
ICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIG9mIFdJLm5ldHdvcmtNYW5hZ2VyLm1h
aW5GcmFtZS5yZXNvdXJjZUNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChwYXR0ZXJuLnRlc3QoaXRlbS51cmwpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzb3VyY2UgPSBpdGVtOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgICAgIGlmICghcmVzb3VyY2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuZmFpbCgiRmFpbGVkIHRvIGZpbmQgc3BlY2lmaWMgcmVzb3VyY2UuIik7CisgICAg
ICAgICAgICAgICAgICAgICAgICByZWplY3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmV4cGVjdFRoYXQocmVzb3VyY2UgaW5zdGFuY2VvZiBXSS5SZXNvdXJjZSwgIlJlc291
cmNlIHNob3VsZCBleGlzdC4iKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFcXVhbChyZXNvdXJjZS5zdGF0dXNDb2RlLCBzdGF0dXNDb2RlLCBgc3RhdHVzQ29kZSBz
aG91bGQgYmUgJHtzdGF0dXNDb2RlfWApOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnJlc3BvbnNlU291cmNlLCByZXNwb25zZVNvdXJjZSwg
YHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSAke1N0cmluZyhyZXNwb25zZVNvdXJjZSl9YCk7Cisg
ICAgICAgICAgICAgICAgfSkudGhlbihyZXNvbHZlLCByZWplY3QpOworICAgICAgICAgICAgfQor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBhZGRSZWxvYWRUZXN0Q2FzZSh7CisgICAgICAgIG5h
bWU6ICJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIsCisgICAgICAgIGRlc2Ny
aXB0aW9uOiAiTG9hZCBhIHJlc291cmNlIGZyb20gdGhlIG1lbW9yeSBjYWNoZSBieSByZWxvYWRp
bmcgdGhpcyBwYWdlLiIsCisgICAgICAgIHBhdHRlcm46IC9jYWNoZWQtc2NyaXB0XC5qcyQvLAor
ICAgICAgICBpZ25vcmVDYWNoZTogZmFsc2UsCisgICAgICAgIHJlc3BvbnNlU291cmNlOiBXSS5S
ZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSwKKyAgICAgICAgc3RhdHVzQ29kZTog
MzA0LAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3QgZm9y
IGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAuPC9wPgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJl
ZC1vbmx5LTk4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRl
LWV4cGlyZWQtb25seS05OC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjIzMDJiZjllZDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVt
b3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5LTk4LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDkgQEAKK1Rlc3QgZm9yIGBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZWAu
CisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1v
cnlDYWNoZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1l
bW9yeUNhY2hlCitQQVNTOiBSZXNvdXJjZSBzaG91bGQgZXhpc3QuCitQQVNTOiBzdGF0dXNDb2Rl
IHNob3VsZCBiZSAzMDQKK1BBU1M6IHJlc3BvbnNlU291cmNlIHNob3VsZCBiZSBTeW1ib2wobWVt
b3J5LWNhY2hlKQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0
ZS1leHBpcmVkLW9ubHktOTguaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRl
LWV4cGlyZWQtb25seS05OC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi4zZWU0ZTJlNzEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNo
ZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS05OC5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvY2FjaGVkLXNjcmlwdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitU
ZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiTG9hZENvbXBsZXRlIik7CisKK2Z1bmN0
aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZGVidWcoKTsKKworICAgIGxldCBzdWl0
ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUmVzb3VyY2UuUmVzcG9uc2VTb3Vy
Y2UuTWVtb3J5Q2FjaGUiKTsKKworICAgIGZ1bmN0aW9uIGFkZFJlbG9hZFRlc3RDYXNlKHtuYW1l
LCBkZXNjcmlwdGlvbiwgZXhwcmVzc2lvbiwgcGF0dGVybiwgaWdub3JlQ2FjaGUsIHN0YXR1c0Nv
ZGUsIHJlc3BvbnNlU291cmNlfSkgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAg
ICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVq
ZWN0KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5yZWxvYWRQYWdlKHtpZ25vcmVD
YWNoZSwgcmV2YWxpZGF0ZUFsbFJlc291cmNlczogdHJ1ZX0pOworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXdhaXRFdmVudCgiTG9hZENvbXBsZXRlIikudGhlbigoZXZlbnQpID0+IHsK
KyAgICAgICAgICAgICAgICAgICAgbGV0IHJlc291cmNlID0gbnVsbDsKKyAgICAgICAgICAgICAg
ICAgICAgZm9yIChsZXQgaXRlbSBvZiBXSS5uZXR3b3JrTWFuYWdlci5tYWluRnJhbWUucmVzb3Vy
Y2VDb2xsZWN0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGF0dGVybi50ZXN0
KGl0ZW0udXJsKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlID0gaXRl
bTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAo
IXJlc291cmNlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmZhaWwo
IkZhaWxlZCB0byBmaW5kIHNwZWNpZmljIHJlc291cmNlLiIpOworICAgICAgICAgICAgICAgICAg
ICAgICAgcmVqZWN0KCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RU
aGF0KHJlc291cmNlIGluc3RhbmNlb2YgV0kuUmVzb3VyY2UsICJSZXNvdXJjZSBzaG91bGQgZXhp
c3QuIik7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVz
b3VyY2Uuc3RhdHVzQ29kZSwgc3RhdHVzQ29kZSwgYHN0YXR1c0NvZGUgc2hvdWxkIGJlICR7c3Rh
dHVzQ29kZX1gKTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVh
bChyZXNvdXJjZS5yZXNwb25zZVNvdXJjZSwgcmVzcG9uc2VTb3VyY2UsIGByZXNwb25zZVNvdXJj
ZSBzaG91bGQgYmUgJHtTdHJpbmcocmVzcG9uc2VTb3VyY2UpfWApOworICAgICAgICAgICAgICAg
IH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7Cisg
ICAgfQorCisgICAgYWRkUmVsb2FkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiUmVzb3VyY2Uu
UmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkxvYWQg
YSByZXNvdXJjZSBmcm9tIHRoZSBtZW1vcnkgY2FjaGUgYnkgcmVsb2FkaW5nIHRoaXMgcGFnZS4i
LAorICAgICAgICBwYXR0ZXJuOiAvY2FjaGVkLXNjcmlwdFwuanMkLywKKyAgICAgICAgaWdub3Jl
Q2FjaGU6IGZhbHNlLAorICAgICAgICByZXNwb25zZVNvdXJjZTogV0kuUmVzb3VyY2UuUmVzcG9u
c2VTb3VyY2UuTWVtb3J5Q2FjaGUsCisgICAgICAgIHN0YXR1c0NvZGU6IDMwNCwKKyAgICB9KTsK
KworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5UZXN0IGZvciBgUmVzb3VyY2UuUmVz
cG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVz
cG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS05OS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291
cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHkt
OTktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4y
MzAyYmY5ZWQwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZh
bGlkYXRlLWV4cGlyZWQtb25seS05OS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0
IGZvciBgUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGVgLgorCisKKz09IFJ1bm5p
bmcgdGVzdCBzdWl0ZTogUmVzb3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZQorUEFT
UzogUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LgorUEFTUzogc3RhdHVzQ29kZSBzaG91bGQgYmUgMzA0
CitQQVNTOiByZXNwb25zZVNvdXJjZSBzaG91bGQgYmUgU3ltYm9sKG1lbW9yeS1jYWNoZSkKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNv
dXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5
LTk5Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291
cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHkt
OTkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2VlNGUyZTcx
M2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9u
ZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1l
eHBpcmVkLW9ubHktOTkuaHRtbApAQCAtMCwwICsxLDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2NhY2hlZC1zY3JpcHQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorVGVzdFBhZ2UuZGlzcGF0
Y2hFdmVudFRvRnJvbnRlbmQoIkxvYWRDb21wbGV0ZSIpOworCitmdW5jdGlvbiB0ZXN0KCkKK3sK
KyAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7CisKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JU
ZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9yeUNhY2hl
Iik7CisKKyAgICBmdW5jdGlvbiBhZGRSZWxvYWRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24s
IGV4cHJlc3Npb24sIHBhdHRlcm4sIGlnbm9yZUNhY2hlLCBzdGF0dXNDb2RlLCByZXNwb25zZVNv
dXJjZX0pIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwg
ZGVzY3JpcHRpb24sCisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRh
dGVBbGxSZXNvdXJjZXM6IHRydWV9KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmF3
YWl0RXZlbnQoIkxvYWRDb21wbGV0ZSIpLnRoZW4oKGV2ZW50KSA9PiB7CisgICAgICAgICAgICAg
ICAgICAgIGxldCByZXNvdXJjZSA9IG51bGw7CisgICAgICAgICAgICAgICAgICAgIGZvciAobGV0
IGl0ZW0gb2YgV0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1lLnJlc291cmNlQ29sbGVjdGlvbikg
eworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChpdGVtLnVybCkpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSA9IGl0ZW07CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNvdXJjZSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQgdG8gZmlu
ZCBzcGVjaWZpYyByZXNvdXJjZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgp
OworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXNvdXJjZSBp
bnN0YW5jZW9mIFdJLlJlc291cmNlLCAiUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LiIpOworICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1c0Nv
ZGUsIHN0YXR1c0NvZGUsIGBzdGF0dXNDb2RlIHNob3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7Cisg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2UucmVz
cG9uc2VTb3VyY2UsIHJlc3BvbnNlU291cmNlLCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlICR7
U3RyaW5nKHJlc3BvbnNlU291cmNlKX1gKTsKKyAgICAgICAgICAgICAgICB9KS50aGVuKHJlc29s
dmUsIHJlamVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIGFk
ZFJlbG9hZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlJlc291cmNlLlJlc3BvbnNlU291cmNl
Lk1lbW9yeUNhY2hlIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJMb2FkIGEgcmVzb3VyY2UgZnJv
bSB0aGUgbWVtb3J5IGNhY2hlIGJ5IHJlbG9hZGluZyB0aGlzIHBhZ2UuIiwKKyAgICAgICAgcGF0
dGVybjogL2NhY2hlZC1zY3JpcHRcLmpzJC8sCisgICAgICAgIGlnbm9yZUNhY2hlOiBmYWxzZSwK
KyAgICAgICAgcmVzcG9uc2VTb3VyY2U6IFdJLlJlc291cmNlLlJlc3BvbnNlU291cmNlLk1lbW9y
eUNhY2hlLAorICAgICAgICBzdGF0dXNDb2RlOiAzMDQsCisgICAgfSk7CisKKyAgICBzdWl0ZS5y
dW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdCBmb3IgYFJlc291cmNlLlJlc3BvbnNlU291cmNlLk1l
bW9yeUNhY2hlYC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1t
ZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHkuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9uc2Utc291cmNlLW1lbW9y
eS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS5odG1sCmluZGV4IDk1MWY4ODM2NTBkLi4z
ZWU0ZTJlNzEzYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUt
ZXhwaXJlZC1vbmx5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
bmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1zb3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUt
ZXhwaXJlZC1vbmx5Lmh0bWwKQEAgLTksNiArOSw4IEBAIFRlc3RQYWdlLmRpc3BhdGNoRXZlbnRU
b0Zyb250ZW5kKCJMb2FkQ29tcGxldGUiKTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7CisgICAgSW5z
cGVjdG9yVGVzdC5kZWJ1ZygpOworCiAgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVh
dGVBc3luY1N1aXRlKCJSZXNvdXJjZS5SZXNwb25zZVNvdXJjZS5NZW1vcnlDYWNoZSIpOwogCiAg
ICAgZnVuY3Rpb24gYWRkUmVsb2FkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNz
aW9uLCBwYXR0ZXJuLCBpZ25vcmVDYWNoZSwgc3RhdHVzQ29kZSwgcmVzcG9uc2VTb3VyY2V9KSB7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382830</attachid>
            <date>2019-11-05 09:52:04 -0800</date>
            <delta_ts>2019-11-05 11:53:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203841-20191105095203.patch</filename>
            <type>text/plain</type>
            <size>3878</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5MDQxMmY4NjY5NDUwMWM0ODMyYzI4N2Y0Yzg4ODUxNDFmMzExNDMyLi5hYjJhZjM2
YzBhOGMxNzIxNzI4OWYxOGZiM2FmN2E4ODQxNjY1YjVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTktMTEtMDUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAg
IExheW91dCB0ZXN0IGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2UtcmVzcG9u
c2Utc291cmNlLW1lbW9yeS1jYWNoZS1yZXZhbGlkYXRlLWV4cGlyZWQtb25seS5odG1sIGlzIGEg
Zmxha2V5IGZhaWx1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMzg0MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTE3NTIxNTE+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2
YWxpZGF0ZS1leHBpcmVkLW9ubHkuaHRtbDoKKyAgICAgICAgUmV3cml0ZSB0aGUgdGVzdCBzbyBp
dCBhY3R1YWxseSB3YWl0cyBmb3IgdGhlIHJlc291cmNlIHJlc3BvbnNlIGluZm9ybWF0aW9uIHRv
IGJlIHJlY2VpdmVkCisgICAgICAgIGluIHRoZSBmcm9udGVuZCBiZWZvcmUgdGVzdGluZyBhbnkg
aW5mb3JtYXRpb24gYWJvdXQgdGhlIHJlc291cmNlLCBhcyB0aGUgcmVzcG9uc2UgaXMgd2hhdAor
ICAgICAgICBjb250YWlucyB0aGUgc3RhdHVzIGNvZGUgYW5kIHNvdXJjZS4gUHJldmlvdXNseSwg
d2Ugd291bGQgb25seSB3YWl0IGZvciB0aGUgaW5zcGVjdGVkIHBhZ2UKKyAgICAgICAgdG8gZmlu
aXNoIGxvYWRpbmcsIHdoaWNoIGRpZCBndWFyYW50ZWUgdGhhdCB0aGUgaW5zcGVjdG9yIGZyb250
ZW5kIGF0IGxlYXN0IGtuZXcgYWJvdXQgdGhlCisgICAgICAgIHJlc291cmNlIGJlaW5nIGxvYWRl
ZCwgYnV0IG5vdCBuZWNlc3NhcmlseSB0aGF0IGl0IGhhZCBiZWVuIHRvbGQgYWJvdXQgdGhlIHJl
c3BvbnNlLgorCiAyMDE5LTExLTA0ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVuYW1lIHVpLW1vbm9zcGFjZWQgdG8gdWktbW9ub3NwYWNlIHRv
IG1hdGNoIHRoZSBtb25vc3BhY2UgZ2VuZXJpYyBmb250IGZhbWlseQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1yZXNwb25zZS1z
b3VyY2UtbWVtb3J5LWNhY2hlLXJldmFsaWRhdGUtZXhwaXJlZC1vbmx5Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJj
ZS1tZW1vcnktY2FjaGUtcmV2YWxpZGF0ZS1leHBpcmVkLW9ubHkuaHRtbAppbmRleCA5NTFmODgz
NjUwZDUwNTc1NzE0M2Y5YjlhNTBmM2Q1MWM3NzQ4MjAxLi5lOWI1NTkwZWNmMjc4NmM4M2NkYmMx
ODliNmEwN2ZkYTE4ZTY5MmIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2
YWxpZGF0ZS1leHBpcmVkLW9ubHkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9uZXR3b3JrL3Jlc291cmNlLXJlc3BvbnNlLXNvdXJjZS1tZW1vcnktY2FjaGUtcmV2
YWxpZGF0ZS1leHBpcmVkLW9ubHkuaHRtbApAQCAtNSw4ICs1LDYgQEAKIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvY2FjaGVkLXNjcmlwdC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci1UZXN0UGFnZS5k
aXNwYXRjaEV2ZW50VG9Gcm9udGVuZCgiTG9hZENvbXBsZXRlIik7Ci0KIGZ1bmN0aW9uIHRlc3Qo
KQogewogICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuY3JlYXRlQXN5bmNTdWl0ZSgiUmVz
b3VyY2UuUmVzcG9uc2VTb3VyY2UuTWVtb3J5Q2FjaGUiKTsKQEAgLTE1LDI0ICsxMywyMCBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoewogICAgICAgICAgICAg
bmFtZSwgZGVzY3JpcHRpb24sCiAgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJl
dmFsaWRhdGVBbGxSZXNvdXJjZXM6IHRydWV9KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmF3YWl0RXZlbnQoIkxvYWRDb21wbGV0ZSIpLnRoZW4oKGV2ZW50KSA9PiB7Ci0gICAgICAg
ICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9IG51bGw7Ci0gICAgICAgICAgICAgICAgICAgIGZv
ciAobGV0IGl0ZW0gb2YgV0kubmV0d29ya01hbmFnZXIubWFpbkZyYW1lLnJlc291cmNlQ29sbGVj
dGlvbikgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhdHRlcm4udGVzdChpdGVtLnVy
bCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSA9IGl0ZW07Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNvdXJj
ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5mYWlsKCJGYWlsZWQg
dG8gZmluZCBzcGVjaWZpYyByZXNvdXJjZS4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJl
amVjdCgpOworICAgICAgICAgICAgICAgIGxldCBsaXN0ZW5lciA9IFdJLlJlc291cmNlLmFkZEV2
ZW50TGlzdGVuZXIoV0kuUmVzb3VyY2UuRXZlbnQuUmVzcG9uc2VSZWNlaXZlZCwgKGV2ZW50KSA9
PiB7CisgICAgICAgICAgICAgICAgICAgIGxldCByZXNvdXJjZSA9IGV2ZW50LnRhcmdldDsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKCFwYXR0ZXJuLnRlc3QocmVzb3VyY2UudXJsKSkKICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICAgICAgfQorCiAgICAg
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXNvdXJjZSBpbnN0YW5j
ZW9mIFdJLlJlc291cmNlLCAiUmVzb3VyY2Ugc2hvdWxkIGV4aXN0LiIpOwogICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHJlc291cmNlLnN0YXR1c0NvZGUsIHN0
YXR1c0NvZGUsIGBzdGF0dXNDb2RlIHNob3VsZCBiZSAke3N0YXR1c0NvZGV9YCk7CiAgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwocmVzb3VyY2UucmVzcG9uc2VT
b3VyY2UsIHJlc3BvbnNlU291cmNlLCBgcmVzcG9uc2VTb3VyY2Ugc2hvdWxkIGJlICR7U3RyaW5n
KHJlc3BvbnNlU291cmNlKX1gKTsKLSAgICAgICAgICAgICAgICB9KS50aGVuKHJlc29sdmUsIHJl
amVjdCk7CisKKyAgICAgICAgICAgICAgICAgICAgV0kuUmVzb3VyY2UucmVtb3ZlRXZlbnRMaXN0
ZW5lcihXSS5SZXNvdXJjZS5FdmVudC5SZXNwb25zZVJlY2VpdmVkLCBsaXN0ZW5lcik7CisgICAg
ICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgICAgICB9KTsKKworICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSh7aWdub3JlQ2FjaGUsIHJldmFsaWRh
dGVBbGxSZXNvdXJjZXM6IHRydWV9KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSk7CiAgICAg
fQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>