<?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>147729</bug_id>
          
          <creation_ts>2015-08-06 10:08:48 -0700</creation_ts>
          <short_desc>Web Inspector: move LayoutTests/inspector-protocol/ tests to LayoutTests/inspector/</short_desc>
          <delta_ts>2015-08-07 11:40:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=147739</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=147787</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>bburg</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1115359</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-08-06 10:08:48 -0700</bug_when>
    <thetext>Joe and I came up with the following organization. All inspector tests belong under LayoutTests/inspector/, regardless of the test harness that is used. The harness is a per-test choice, determined by which file is included (protocol-test.js or inspector-test.js). Most tests are arranged according to the domain that they exercise.

inspector/
    dom/
    dom-debugger/
    debugger/
    runtime/
    ...
    unittests/
    protocol/


unittests/ will contain all tests not specific to any protocol domain or methods, such as the unit tests for AsyncTestSuite, EventListener, and other classes.

protocol/ will contain tests for the protocol layer, such as tests for InspectorBackend and error messages sent by the backend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115423</commentid>
    <comment_count>1</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-08-06 13:29:35 -0700</bug_when>
    <thetext>I would go with unit-tests. unit tests just seems odd.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115617</commentid>
    <comment_count>2</comment_count>
      <attachid>258441</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-08-06 20:34:58 -0700</bug_when>
    <thetext>Created attachment 258441
Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115815</commentid>
    <comment_count>3</comment_count>
      <attachid>258441</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-08-07 11:22:59 -0700</bug_when>
    <thetext>Comment on attachment 258441
Proposed Fix

I think this can lead to confusion. Now LayoutTests/inspector has some tests that use 1 path (protocol-test) and other tests that use another path (inspector-test) both have &quot;InspectorTest.foo&quot; that behave differently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115819</commentid>
    <comment_count>4</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-08-07 11:33:30 -0700</bug_when>
    <thetext>Committed r188142: &lt;http://trac.webkit.org/changeset/188142&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1115822</commentid>
    <comment_count>5</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2015-08-07 11:38:19 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 258441 [details]
&gt; Proposed Fix
&gt; 
&gt; I think this can lead to confusion. Now LayoutTests/inspector has some tests
&gt; that use 1 path (protocol-test) and other tests that use another path
&gt; (inspector-test) both have &quot;InspectorTest.foo&quot; that behave differently.

I would be happy to rename InspectorTest from protocol-test.js to ProtocolTest. There is plenty of de-duplication that we should do, and now it&apos;s more obvious where we need to improve.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258441</attachid>
            <date>2015-08-06 20:34:58 -0700</date>
            <delta_ts>2015-08-07 11:36:59 -0700</delta_ts>
            <desc>Proposed Fix</desc>
            <filename>bug-147729-20150806203446.patch</filename>
            <type>text/plain</type>
            <size>770852</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4MDY4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjA4ODYzNWE2NTc4YWIwMjhlZjQz
MjkxYTNkZmI2NjQ3ZGMwNjczMS4uZWRhNTYwNTQ2N2FkMTMwNGZmYzA5ZTkzMTE0NTRhYTNjOTJj
OGZlMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4NiBAQAorMjAxNS0wOC0wNiAgQnJpYW4gQnVyZyAgPGJi
dXJnQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBtb3ZlIExheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC8gdGVzdHMgdG8gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3NzI5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVyZ2UgaW5zcGVj
dG9yLXByb3RvY29sIHRlc3RzIGludG8gdGhlIGluc3BlY3RvciBkaXJlY3RvcnkuIFJlbmFtZSBh
IGZldyBoZWxwZXIKKyAgICAgICAgcmVzb3VyY2VzIHdob3NlIG5hbWVzIGNsYXNoZWQuIFB1dCB0
b3AtbGV2ZWwgdGVzdHMgaW50byB1bml0LXRlc3RzLyBhbmQgcHJvdG9jb2wvLgorCisgICAgICAg
IFVwZGF0ZSBUZXN0RXhwZWN0YXRpb25zIHRvIG5vdCByZWZlcmVuY2UgaW5zcGVjdG9yLXByb3Rv
Y29sIHBhdGhzLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvY29uc29sZS10ZXN0LmpzOiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9jb25zb2xlLXRlc3QuanMu
CisgICAgICAgICogaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb2JlLXRlc3QuanM6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL3By
b2JlLWhlbHBlci5qcy4KKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvcmVz
b3VyY2VzL2JyZWFrcG9pbnQuanM6IFJlbW92ZWQuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNv
bGUvY29uc29sZS1tZXNzYWdlLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9jb25zb2xlL2NvbnNvbGUtbWVzc2FnZS1leHBlY3RlZC50eHQu
CisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1tZXNzYWdlLmh0bWw6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvY29uc29sZS9jb25zb2xlLW1l
c3NhZ2UuaHRtbC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY29uc29sZS9jc3Mtc291cmNlLWxvY2F0
aW9ucy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvY29uc29sZS9jc3Mtc291cmNlLWxvY2F0aW9ucy1leHBlY3RlZC50eHQuCisgICAgICAg
ICogaW5zcGVjdG9yL2NvbnNvbGUvY3NzLXNvdXJjZS1sb2NhdGlvbnMuaHRtbDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9jb25zb2xlL2Nzcy1zb3VyY2UtbG9j
YXRpb25zLmh0bWwuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvanMtc291cmNlLWxvY2F0
aW9ucy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvY29uc29sZS9qcy1zb3VyY2UtbG9jYXRpb25zLWV4cGVjdGVkLnR4dC4KKyAgICAgICAg
KiBpbnNwZWN0b3IvY29uc29sZS9qcy1zb3VyY2UtbG9jYXRpb25zLmh0bWw6IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvY29uc29sZS9qcy1zb3VyY2UtbG9jYXRp
b25zLmh0bWwuCisgICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvcmVzb3VyY2VzL2Vycm9ycy5j
c3M6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2Vz
L2Vycm9ycy5jc3MuCisgICAgICAgIChkaXYpOgorICAgICAgICAqIGluc3BlY3Rvci9jb25zb2xl
L3Jlc291cmNlcy9lcnJvcnMuanM6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvcmVzb3VyY2VzL2Vycm9ycy5qcy4KKyAgICAgICAgKGZvbyk6CisgICAgICAgICog
aW5zcGVjdG9yL2NvbnNvbGUveC1mcmFtZS1vcHRpb25zLW1lc3NhZ2UtZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2NvbnNvbGUveC1mcmFt
ZS1vcHRpb25zLW1lc3NhZ2UtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGluc3BlY3Rvci9jb25z
b2xlL3gtZnJhbWUtb3B0aW9ucy1tZXNzYWdlLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvY29uc29sZS94LWZyYW1lLW9wdGlvbnMtbWVzc2FnZS5odG1s
LgorICAgICAgICAqIGluc3BlY3Rvci9jc3MvZ2V0U3VwcG9ydGVkQ1NTUHJvcGVydGllcy1leHBl
Y3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvY3Nz
L2dldFN1cHBvcnRlZENTU1Byb3BlcnRpZXMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGluc3Bl
Y3Rvci9jc3MvZ2V0U3VwcG9ydGVkQ1NTUHJvcGVydGllcy5odG1sOiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Nzcy9nZXRTdXBwb3J0ZWRDU1NQcm9wZXJ0aWVz
Lmh0bWwuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWRl
dGFjaC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZGV0YWNoLWV4cGVjdGVkLnR4dC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZGV0YWNoLmh0bWw6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJl
YWtwb2ludC1hY3Rpb24tZGV0YWNoLmh0bWwuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2Vy
L2JyZWFrcG9pbnQtYWN0aW9uLWV2YWwuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWtwb2ludC1hY3Rpb24td2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0OiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQt
YWN0aW9uLXdpdGgtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24td2l0aC1leGNlcHRpb24uaHRtbDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFj
dGlvbi13aXRoLWV4Y2VwdGlvbi5odG1sLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9i
cmVha3BvaW50LWNvbmRpdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9u
LWRldGFjaC1leHBlY3RlZC50eHQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFr
cG9pbnQtY29uZGl0aW9uLWRldGFjaC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLWRldGFjaC5odG1s
LgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi13aXRo
LWJhZC1zY3JpcHQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLXdpdGgtYmFkLXNjcmlw
dC1leHBlY3RlZC50eHQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQt
Y29uZGl0aW9uLXdpdGgtYmFkLXNjcmlwdC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLXdpdGgtYmFk
LXNjcmlwdC5odG1sLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWNv
bmRpdGlvbi13aXRoLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24td2l0
aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9i
cmVha3BvaW50LWNvbmRpdGlvbi13aXRoLWV4Y2VwdGlvbi5odG1sOiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9u
LXdpdGgtZXhjZXB0aW9uLmh0bWwuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFr
cG9pbnQtZXZhbC13aXRoLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1ldmFsLXdpdGgt
ZXhjZXB0aW9uLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJl
YWtwb2ludC1ldmFsLXdpdGgtZXhjZXB0aW9uLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1ldmFsLXdpdGgtZXhjZXB0
aW9uLmh0bWwuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtaW5zaWRl
LWNvbmRpdG9ucy1hbmQtYWN0aW9ucy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUtY29uZGl0
b25zLWFuZC1hY3Rpb25zLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWtwb2ludC1pbnNpZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLmh0bWw6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1p
bnNpZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLmh0bWwuCisgICAgICAgICogaW5zcGVjdG9yL2Rl
YnVnZ2VyL2NhbGwtZnJhbWUtZnVuY3Rpb24tbmFtZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS1mdW5j
dGlvbi1uYW1lLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvY2Fs
bC1mcmFtZS1mdW5jdGlvbi1uYW1lLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS1mdW5jdGlvbi1uYW1lLmh0bWwuCisg
ICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0LWV4cGVjdGVk
LnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9jYWxsLWZyYW1lLXRoaXMtaG9zdC1leHBlY3RlZC50eHQuCisgICAgICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLWhvc3QuaHRt
bC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLW5vbnN0cmlj
dC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLW5vbnN0cmljdC1leHBlY3RlZC50eHQuCisgICAg
ICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ub25zdHJpY3QuaHRtbDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxs
LWZyYW1lLXRoaXMtbm9uc3RyaWN0Lmh0bWwuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2Vy
L2NhbGwtZnJhbWUtdGhpcy1zdHJpY3QtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1zdHJpY3Qt
ZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRo
aXMtc3RyaWN0Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLXN0cmljdC5odG1sLgorICAgICAgICAqIGluc3Bl
Y3Rvci9kZWJ1Z2dlci9kZWJ1Z2dlci1zdGF0ZW1lbnQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2RlYnVnZ2VyLXN0YXRl
bWVudC1leHBlY3RlZC50eHQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2Vy
LXN0YXRlbWVudC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2RlYnVnZ2VyL2RlYnVnZ2VyLXN0YXRlbWVudC5odG1sLgorICAgICAgICAqIGluc3BlY3Rv
ci9kZWJ1Z2dlci9kaWRTYW1wbGVQcm9iZS1tdWx0aXBsZS1wcm9iZXMtZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2RpZFNh
bXBsZVByb2JlLW11bHRpcGxlLXByb2Jlcy1leHBlY3RlZC50eHQuCisgICAgICAgICogaW5zcGVj
dG9yL2RlYnVnZ2VyL2RpZFNhbXBsZVByb2JlLW11bHRpcGxlLXByb2Jlcy5odG1sOiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2RpZFNhbXBsZVBy
b2JlLW11bHRpcGxlLXByb2Jlcy5odG1sLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9o
aXQtYnJlYWtwb2ludC1mcm9tLWNvbnNvbGUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2hpdC1icmVha3BvaW50LWZyb20t
Y29uc29sZS1leHBlY3RlZC50eHQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2hpdC1i
cmVha3BvaW50LWZyb20tY29uc29sZS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2hpdC1icmVha3BvaW50LWZyb20tY29uc29sZS5odG1s
LgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9ycy1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvbmVzdGVkLWluc3BlY3RvcnMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGluc3BlY3Rvci9k
ZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9ycy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL25lc3RlZC1pbnNwZWN0b3JzLmh0bWwuCisgICAg
ICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3BhdXNlLWRlZGljYXRlZC13b3JrZXItZXhwZWN0ZWQu
dHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3BhdXNlLWRlZGljYXRlZC13b3JrZXItZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGluc3BlY3Rv
ci9kZWJ1Z2dlci9wYXVzZS1kZWRpY2F0ZWQtd29ya2VyLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvcGF1c2UtZGVkaWNhdGVkLXdvcmtl
ci5odG1sLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZS1vbi1hc3NlcnQtZXhw
ZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL3BhdXNlLW9uLWFzc2VydC1leHBlY3RlZC50eHQuCisgICAgICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL3BhdXNlLW9uLWFzc2VydC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3BhdXNlLW9uLWFzc2VydC5odG1sLgorICAgICAg
ICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9wcm9iZS1tYW5hZ2VyLWFkZC1yZW1vdmUtYWN0aW9ucy5o
dG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9yZWdyZXNzLTEzMzE4Mi1leHBlY3Rl
ZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvcmVncmVzcy0xMzMxODItZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1
Z2dlci9yZWdyZXNzLTEzMzE4Mi5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL3JlZ3Jlc3MtMTMzMTgyLmh0bWwuCisgICAgICAgICogaW5z
cGVjdG9yL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9p
bnQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9yZW1vdmVCcmVh
a3BvaW50Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvcmVtb3ZlQnJlYWtwb2ludC5odG1sLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1
Z2dlci9yZXNvdXJjZXMvYXNzZXJ0LmpzOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL3Jlc291cmNlcy9hc3NlcnQuanMuCisgICAgICAgICogaW5z
cGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9kZWRpY2F0ZWQtd29ya2VyLmpzOiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Jlc291cmNlcy9kZWRp
Y2F0ZWQtd29ya2VyLmpzLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMv
ZXhjZXB0aW9uLmpzOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL3Jlc291cmNlcy9leGNlcHRpb24uanMuCisgICAgICAgICogaW5zcGVjdG9yL2Rl
YnVnZ2VyL3Jlc291cmNlcy9tYWMtbGluZWJyZWFrcy5qczogUmVuYW1lZCBmcm9tIExheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZXNvdXJjZXMvbWFjLWxpbmVicmVha3Mu
anMuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9taXhlZC1saW5lYnJl
YWtzLmpzOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL3Jlc291cmNlcy9taXhlZC1saW5lYnJlYWtzLmpzLgorICAgICAgICAqIGluc3BlY3Rvci9k
ZWJ1Z2dlci9yZXNvdXJjZXMvc2NyaXB0LWZvci1icmVha3BvaW50LWFjdGlvbnMuanM6IENvcGll
ZCBmcm9tIExheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvYnJlYWtwb2lu
dC5qcy4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL3VuaXgtbGluZWJy
ZWFrcy5qczogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9yZXNvdXJjZXMvdW5peC1saW5lYnJlYWtzLmpzLgorICAgICAgICAqIGluc3BlY3Rvci9k
ZWJ1Z2dlci9yZXNvdXJjZXMvd2luZG93cy1saW5lYnJlYWtzLmpzOiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Jlc291cmNlcy93aW5kb3dzLWxp
bmVicmVha3MuanMuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NlYXJjaEluQ29udGVu
dC1saW5lYnJlYWtzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZWFyY2hJbkNvbnRlbnQtbGluZWJyZWFrcy1leHBlY3Rl
ZC50eHQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NlYXJjaEluQ29udGVudC1saW5l
YnJlYWtzLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvc2VhcmNoSW5Db250ZW50LWxpbmVicmVha3MuaHRtbC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hY3Rpb25zLWV4cGVjdGVkLnR4dDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3Bv
aW50LWFjdGlvbnMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9z
ZXRCcmVha3BvaW50LWFjdGlvbnMuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWFjdGlvbnMuaHRtbC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUtZXhwZWN0
ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRpbnVlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3Bv
aW50LWF1dG9Db250aW51ZS5odG1sLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRC
cmVha3BvaW50LWNvbHVtbi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb2x1bW4tZXhwZWN0ZWQu
dHh0LgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi5o
dG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnQtY29sdW1uLmh0bWwuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnQtY29sdW1uLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi50eHQuCisgICAgICAg
ICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29uZGl0aW9uLWV4cGVjdGVkLnR4
dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9z
ZXRCcmVha3BvaW50LWNvbmRpdGlvbi1leHBlY3RlZC50eHQuCisgICAgICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29uZGl0aW9uLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRp
b24uaHRtbC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1kZmct
YW5kLW1vZGlmeS1sb2NhbC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1kZmctYW5kLW1vZGlmeS1s
b2NhbC1leHBlY3RlZC50eHQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFr
cG9pbnQtZGZnLWFuZC1tb2RpZnktbG9jYWwuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWRmZy1hbmQtbW9kaWZ5
LWxvY2FsLmh0bWwuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQt
ZGZnLWNhbGxlZS1hbmQtZXhhbWluZS1kZmctbG9jYWwtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQt
ZGZnLWNhbGxlZS1hbmQtZXhhbWluZS1kZmctbG9jYWwtZXhwZWN0ZWQudHh0LgorICAgICAgICAq
IGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWRmZy1jYWxsZWUtYW5kLWV4YW1pbmUt
ZGZnLWxvY2FsLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1kZmctY2FsbGVlLWFuZC1leGFtaW5lLWRmZy1sb2Nh
bC5odG1sLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWRmZy1l
eHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvc2V0QnJlYWtwb2ludC1kZmctZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGluc3Bl
Y3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWRmZy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZGZnLmh0bWwu
CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9z
ZXRCcmVha3BvaW50LW9wdGlvbnMtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LW9w
dGlvbnMtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdn
ZXIvc2V0QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi5odG1sOiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtb3B0aW9u
cy1leGNlcHRpb24uaHRtbC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtw
b2ludC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL3NldEJyZWFrcG9pbnQuaHRtbC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIv
c2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJs
LXNvdXJjZVVSTC1leHBlY3RlZC50eHQuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50QnlVcmwtc291cmNlVVJM
Lmh0bWwuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25z
LWFsbC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtYWxsLWV4cGVjdGVkLnR4dC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtYWxsLmh0bWw6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0
UGF1c2VPbkV4Y2VwdGlvbnMtYWxsLmh0bWwuCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2Vy
L3NldFBhdXNlT25FeGNlcHRpb25zLW5vbmUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25z
LW5vbmUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRQYXVz
ZU9uRXhjZXB0aW9ucy1ub25lLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS5odG1sLgorICAg
ICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy11bmNhdWdodC1l
eHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtdW5jYXVnaHQtZXhwZWN0ZWQudHh0LgorICAg
ICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy11bmNhdWdodC5o
dG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldFBhdXNlT25FeGNlcHRpb25zLXVuY2F1Z2h0Lmh0bWwuCisgICAgICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL3NldFZhcmlhYmxlVmFsdWUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFZhcmlhYmxlVmFsdWUtZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRWYXJpYWJsZVZhbHVl
Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvc2V0VmFyaWFibGVWYWx1ZS5odG1sLgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci90
ZXJtaW5hdGUtZGVkaWNhdGVkLXdvcmtlci13aGlsZS1wYXVzZWQtZXhwZWN0ZWQudHh0OiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Rlcm1pbmF0
ZS1kZWRpY2F0ZWQtd29ya2VyLXdoaWxlLXBhdXNlZC1leHBlY3RlZC50eHQuCisgICAgICAgICog
aW5zcGVjdG9yL2RlYnVnZ2VyL3Rlcm1pbmF0ZS1kZWRpY2F0ZWQtd29ya2VyLXdoaWxlLXBhdXNl
ZC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL3Rlcm1pbmF0ZS1kZWRpY2F0ZWQtd29ya2VyLXdoaWxlLXBhdXNlZC5odG1sLgorICAgICAg
ICAqIGluc3BlY3Rvci9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20tZGVidWdnZXIvbm9k
ZS1yZW1vdmVkLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tLWRlYnVnZ2Vy
L25vZGUtcmVtb3ZlZC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RvbS1kZWJ1Z2dlci9ub2RlLXJlbW92ZWQuaHRtbC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvZG9tL2RvbS1yZW1vdmUtZXZlbnRzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20vZG9tLXJlbW92ZS1ldmVudHMtZXhwZWN0ZWQu
dHh0LgorICAgICAgICAqIGluc3BlY3Rvci9kb20vZG9tLXJlbW92ZS1ldmVudHMuaHRtbDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20vZG9tLXJlbW92ZS1l
dmVudHMuaHRtbC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tL2RvbS1zZWFyY2gtY3Jhc2gtZXhw
ZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rv
bS9kb20tc2VhcmNoLWNyYXNoLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZG9t
L2RvbS1zZWFyY2gtY3Jhc2guaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kb20vZG9tLXNlYXJjaC1jcmFzaC5odG1sLgorICAgICAgICAqIGluc3BlY3Rv
ci9kb20vZG9tLXNlYXJjaC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvZG9tL2RvbS1zZWFyY2gtZXhwZWN0ZWQudHh0LgorICAgICAgICAq
IGluc3BlY3Rvci9kb20vZG9tLXNlYXJjaC13aXRoLWNvbnRleHQtZXhwZWN0ZWQudHh0OiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS9kb20tc2VhcmNoLXdp
dGgtY29udGV4dC1leHBlY3RlZC50eHQuCisgICAgICAgICogaW5zcGVjdG9yL2RvbS9kb20tc2Vh
cmNoLXdpdGgtY29udGV4dC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL2RvbS9kb20tc2VhcmNoLXdpdGgtY29udGV4dC5odG1sLgorICAgICAgICAqIGlu
c3BlY3Rvci9kb20vZG9tLXNlYXJjaC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RvbS9kb20tc2VhcmNoLmh0bWwuCisgICAgICAgICogaW5zcGVjdG9y
L2RvbS9mb2N1cy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZG9tL2ZvY3VzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZG9tL2ZvY3VzLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZG9tL2ZvY3VzLmh0bWwuCisgICAgICAgICogaW5zcGVjdG9yL2RvbS9nZXRBY2Nlc3NpYmls
aXR5UHJvcGVydGllc0Zvck5vZGUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS9nZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllc0Zvck5v
ZGUtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGluc3BlY3Rvci9kb20vZ2V0QWNjZXNzaWJpbGl0
eVByb3BlcnRpZXNGb3JOb2RlLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZG9tL2dldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZS5odG1sLgor
ICAgICAgICAqIGluc3BlY3Rvci9kb20vZ2V0QWNjZXNzaWJpbGl0eVByb3BlcnRpZXNGb3JOb2Rl
X2xpdmVSZWdpb24tZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RvbS9nZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllc0Zvck5vZGVfbGl2ZVJl
Z2lvbi1leHBlY3RlZC50eHQuCisgICAgICAgICogaW5zcGVjdG9yL2RvbS9nZXRBY2Nlc3NpYmls
aXR5UHJvcGVydGllc0Zvck5vZGVfbGl2ZVJlZ2lvbi5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS9nZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllc0Zv
ck5vZGVfbGl2ZVJlZ2lvbi5odG1sLgorICAgICAgICAqIGluc3BlY3Rvci9kb20vZ2V0QWNjZXNz
aWJpbGl0eVByb3BlcnRpZXNGb3JOb2RlX21vdXNlRXZlbnROb2RlSWQtZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS9nZXRBY2Nlc3Np
YmlsaXR5UHJvcGVydGllc0Zvck5vZGVfbW91c2VFdmVudE5vZGVJZC1leHBlY3RlZC50eHQuCisg
ICAgICAgICogaW5zcGVjdG9yL2RvbS9nZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllc0Zvck5vZGVf
bW91c2VFdmVudE5vZGVJZC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL2RvbS9nZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllc0Zvck5vZGVfbW91c2VFdmVu
dE5vZGVJZC5odG1sLgorICAgICAgICAqIGluc3BlY3Rvci9kb20vaGlnaGxpZ2h0LWZsb3ctd2l0
aC1uby1yZWdpb24tZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RvbS9oaWdobGlnaHQtZmxvdy13aXRoLW5vLXJlZ2lvbi1leHBlY3RlZC50
eHQuCisgICAgICAgICogaW5zcGVjdG9yL2RvbS9oaWdobGlnaHQtZmxvdy13aXRoLW5vLXJlZ2lv
bi5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS9o
aWdobGlnaHQtZmxvdy13aXRoLW5vLXJlZ2lvbi5odG1sLgorICAgICAgICAqIGluc3BlY3Rvci9k
b20vcmVtb3ZlLW11bHRpcGxlLW5vZGVzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20vcmVtb3ZlLW11bHRpcGxlLW5vZGVzLWV4cGVj
dGVkLnR4dC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tL3JlbW92ZS1tdWx0aXBsZS1ub2Rlcy5o
dG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS9yZW1v
dmUtbXVsdGlwbGUtbm9kZXMuaHRtbC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tL3JlcXVlc3Qt
Y2hpbGQtbm9kZXMtZGVwdGgtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RvbS9yZXF1ZXN0LWNoaWxkLW5vZGVzLWRlcHRoLWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZG9tL3JlcXVlc3QtY2hpbGQtbm9kZXMtZGVwdGgu
aHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20vcmVx
dWVzdC1jaGlsZC1ub2Rlcy1kZXB0aC5odG1sLgorICAgICAgICAqIGluc3BlY3Rvci9kb20vcmVz
b3VyY2VzL2RvbS1zZWFyY2gtY3Jhc2gtaWZyYW1lLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tL3Jlc291cmNlcy9kb20tc2VhcmNoLWNyYXNoLWlm
cmFtZS5odG1sLgorICAgICAgICAqIGluc3BlY3Rvci9kb20vcmVzb3VyY2VzL2RvbS1zZWFyY2gt
aWZyYW1lLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZG9tL3Jlc291cmNlcy9kb20tc2VhcmNoLWlmcmFtZS5odG1sLgorICAgICAgICAqIGluc3BlY3Rv
ci9kb20vcmVzb3VyY2VzL2RvbS1zZWFyY2gtcXVlcmllcy5qczogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20vcmVzb3VyY2VzL2RvbS1zZWFyY2gtcXVlcmll
cy5qcy4KKyAgICAgICAgKiBpbnNwZWN0b3IvbGF5ZXJzL2xheWVycy1hbm9ueW1vdXMtZXhwZWN0
ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2xheWVy
cy9sYXllcnMtYW5vbnltb3VzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBpbnNwZWN0b3IvbGF5
ZXJzL2xheWVycy1hbm9ueW1vdXMuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9sYXllcnMvbGF5ZXJzLWFub255bW91cy5odG1sLgorICAgICAgICAqIGlu
c3BlY3Rvci9sYXllcnMvbGF5ZXJzLWJsZW5kaW5nLWNvbXBvc2l0aW5nLXJlYXNvbnMtZXhwZWN0
ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2xheWVy
cy9sYXllcnMtYmxlbmRpbmctY29tcG9zaXRpbmctcmVhc29ucy1leHBlY3RlZC50eHQuCisgICAg
ICAgICogaW5zcGVjdG9yL2xheWVycy9sYXllcnMtYmxlbmRpbmctY29tcG9zaXRpbmctcmVhc29u
cy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2xheWVy
cy9sYXllcnMtYmxlbmRpbmctY29tcG9zaXRpbmctcmVhc29ucy5odG1sLgorICAgICAgICAqIGlu
c3BlY3Rvci9sYXllcnMvbGF5ZXJzLWNvbXBvc2l0aW5nLXJlYXNvbnMtZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2xheWVycy9sYXllcnMt
Y29tcG9zaXRpbmctcmVhc29ucy1leHBlY3RlZC50eHQuCisgICAgICAgICogaW5zcGVjdG9yL2xh
eWVycy9sYXllcnMtY29tcG9zaXRpbmctcmVhc29ucy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2xheWVycy9sYXllcnMtY29tcG9zaXRpbmctcmVhc29u
cy5odG1sLgorICAgICAgICAqIGluc3BlY3Rvci9sYXllcnMvbGF5ZXJzLWZvci1ub2RlLWV4cGVj
dGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9sYXll
cnMvbGF5ZXJzLWZvci1ub2RlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBpbnNwZWN0b3IvbGF5
ZXJzL2xheWVycy1mb3Itbm9kZS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2xheWVycy9sYXllcnMtZm9yLW5vZGUuaHRtbC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvbGF5ZXJzL2xheWVycy1nZW5lcmF0ZWQtY29udGVudC1leHBlY3RlZC50eHQ6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbGF5ZXJzL2xheWVycy1nZW5l
cmF0ZWQtY29udGVudC1leHBlY3RlZC50eHQuCisgICAgICAgICogaW5zcGVjdG9yL2xheWVycy9s
YXllcnMtZ2VuZXJhdGVkLWNvbnRlbnQuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9sYXllcnMvbGF5ZXJzLWdlbmVyYXRlZC1jb250ZW50Lmh0bWwuCisg
ICAgICAgICogaW5zcGVjdG9yL2xheWVycy9sYXllcnMtcmVmbGVjdGVkLWNvbnRlbnQtZXhwZWN0
ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2xheWVy
cy9sYXllcnMtcmVmbGVjdGVkLWNvbnRlbnQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGluc3Bl
Y3Rvci9sYXllcnMvbGF5ZXJzLXJlZmxlY3RlZC1jb250ZW50Lmh0bWw6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbGF5ZXJzL2xheWVycy1yZWZsZWN0ZWQtY29u
dGVudC5odG1sLgorICAgICAgICAqIGluc3BlY3Rvci9wYWdlL2FyY2hpdmUtZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvYXJjaGl2
ZS1leHBlY3RlZC50eHQuCisgICAgICAgICogaW5zcGVjdG9yL3BhZ2UvYXJjaGl2ZS5odG1sOiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvYXJjaGl2ZS5o
dG1sLgorICAgICAgICAqIGluc3BlY3Rvci9wYWdlL2ZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbi1l
eHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
cGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24tZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGlu
c3BlY3Rvci9wYWdlL2ZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbi5odG1sOiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTY2hlZHVsZWROYXZpZ2F0
aW9uLmh0bWwuCisgICAgICAgICogaW5zcGVjdG9yL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy1l
eHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
cGFnZS9mcmFtZVN0YXJ0ZWRMb2FkaW5nLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBpbnNwZWN0
b3IvcGFnZS9mcmFtZVN0YXJ0ZWRMb2FkaW5nLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVN0YXJ0ZWRMb2FkaW5nLmh0bWwuCisgICAg
ICAgICogaW5zcGVjdG9yL3BhZ2UvamF2YXNjcmlwdERpYWxvZ0V2ZW50cy1leHBlY3RlZC50eHQ6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9qYXZhc2Ny
aXB0RGlhbG9nRXZlbnRzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcGFnZS9q
YXZhc2NyaXB0RGlhbG9nRXZlbnRzLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvcGFnZS9qYXZhc2NyaXB0RGlhbG9nRXZlbnRzLmh0bWwuCisgICAgICAg
ICogaW5zcGVjdG9yL3BhZ2UvcmVzb3VyY2VzL2JsYW5rLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9yZXNvdXJjZXMvYmxhbmsuaHRtbC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvcGFnZS9zZXRFbXVsYXRlZE1lZGlhLWV4cGVjdGVkLnR4dDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL3NldEVtdWxhdGVk
TWVkaWEtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGluc3BlY3Rvci9wYWdlL3NldEVtdWxhdGVk
TWVkaWEuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9w
YWdlL3NldEVtdWxhdGVkTWVkaWEuaHRtbC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wv
cHJvdG9jb2wtcHJvbWlzZS1yZXN1bHQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3Byb3RvY29sLXByb21pc2UtcmVzdWx0LWV4cGVjdGVkLnR4dC4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvcHJvdG9jb2wvcHJvdG9jb2wtcHJvbWlzZS1yZXN1bHQuaHRtbDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC1wcm9taXNlLXJlc3Vs
dC5odG1sLgorICAgICAgICAqIGluc3BlY3Rvci9ydW50aW1lL2dldFByb3BlcnRpZXMtZXhwZWN0
ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3J1bnRp
bWUvZ2V0UHJvcGVydGllcy1leHBlY3RlZC50eHQuCisgICAgICAgICogaW5zcGVjdG9yL3J1bnRp
bWUvZ2V0UHJvcGVydGllcy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL3J1bnRpbWUvZ2V0UHJvcGVydGllcy5odG1sLgorICAgICAgICAqIGluc3BlY3Rv
ci91bml0LXRlc3RzL2FzeW5jLXRlc3Qtc3VpdGUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2FzeW5jLXRlc3Qtc3VpdGUtZXhwZWN0ZWQu
dHh0LgorICAgICAgICAqIGluc3BlY3Rvci91bml0LXRlc3RzL2FzeW5jLXRlc3Qtc3VpdGUuaHRt
bDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9hc3luYy10ZXN0
LXN1aXRlLmh0bWwuCisgICAgICAgICogaW5zcGVjdG9yL3VuaXQtdGVzdHMvZXZlbnQtbGlzdGVu
ZXItZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V2ZW50
LWxpc3RlbmVyLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdW5pdC10ZXN0cy9l
dmVudC1saXN0ZW5lci1zZXQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2V2ZW50LWxpc3RlbmVyLXNldC1leHBlY3RlZC50eHQuCisgICAgICAgICogaW5z
cGVjdG9yL3VuaXQtdGVzdHMvZXZlbnQtbGlzdGVuZXItc2V0Lmh0bWw6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZXZlbnQtbGlzdGVuZXItc2V0Lmh0bWwuCisgICAgICAgICog
aW5zcGVjdG9yL3VuaXQtdGVzdHMvZXZlbnQtbGlzdGVuZXIuaHRtbDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2luc3BlY3Rvci9ldmVudC1saXN0ZW5lci5odG1sLgorICAgICAgICAqIGluc3Bl
Y3Rvci91bml0LXRlc3RzL3N5bmMtdGVzdC1zdWl0ZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvc3luYy10ZXN0LXN1aXRlLWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdW5pdC10ZXN0cy9zeW5jLXRlc3Qtc3VpdGUuaHRt
bDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9zeW5jLXRlc3Qt
c3VpdGUuaHRtbC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3Mt
dHJpdmlhbGx5LXdvcmtzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2lu
c3BlY3Rvci90ZXN0LWhhcm5lc3MtdHJpdmlhbGx5LXdvcmtzLWV4cGVjdGVkLnR4dC4KKyAgICAg
ICAgKiBpbnNwZWN0b3IvdW5pdC10ZXN0cy90ZXN0LWhhcm5lc3MtdHJpdmlhbGx5LXdvcmtzLmh0
bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9pbnNwZWN0b3IvdGVzdC1oYXJuZXNzLXRyaXZp
YWxseS13b3Jrcy5odG1sLgorICAgICAgICAqIHBsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25z
OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBs
YXRmb3JtL2lvcy1zaW11bGF0b3Itd2sxL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxh
dGZvcm0vaW9zLXNpbXVsYXRvci13azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6
CisKIDIwMTUtMDgtMDYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBUb2dnbGUgR1BTIHN0YXRlIGJhc2VkIG9uIHBhZ2UgdmlzaWJpbGl0eSB0byBzYXZlIGJhdHRl
cnkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGFiYjAxOGY1ZGU5YzdjY2VlMGNhM2U2N2Q5ZTAxYjFk
OWU1M2U4ZjkuLjdlMTYwNGRmMzA5NjQzOGI2ZjQwZDdhMmMxMzgzZmMxNGJmYWQxMDYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtOTEsMTQgKzkxLDE2IEBAIHdlYmtpdC5vcmcvYi84MzYxOCBmYXN0
L2RvbS9pbmxpbmUtZXZlbnQtYXR0cmlidXRlcy1yZWxlYXNlLmh0bWwgWyBGYWlsdXJlIF0KIAog
d2Via2l0Lm9yZy9iLzEyOTA1NyBtZWRpYS9jb250cm9scy1zdHlsaW5nLXN0cmljdC5odG1sIFsg
UGFzcyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzEzMzc2MSBpbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZGV0YWNoLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5v
cmcvYi8xMjk2MzkgaW5zcGVjdG9yLXByb3RvY29sL2RvbS9kb20tc2VhcmNoLWNyYXNoLmh0bWwg
WyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xMjk2MzkgaW5zcGVjdG9yL2RvbS9kb20tc2VhcmNoLWNy
YXNoLmh0bWwgWyBTa2lwIF0KIAord2Via2l0Lm9yZy9iLzEzMzc2MSBpbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWtwb2ludC1hY3Rpb24tZGV0YWNoLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8x
NDc1MDIgaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJv
dy1pbi1wcm9taXNlLXJldGhyb3ctaW4tY2F0Y2guaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9i
LzE0NzUwMiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRo
cm93LWluLXByb21pc2UtdGhlbi13aXRoLWNhdGNoLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcv
Yi8xNDc1MDIgaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10
aHJvdy1pbi1wcm9taXNlLXRoZW4uaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE0NzUwMiBp
bnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXBy
b21pc2Utd2l0aC1jYXRjaC5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTQ3NTAyIGluc3Bl
Y3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlz
ZS5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTI4NzM2IGluc3BlY3Rvci9kZWJ1Z2dlci9z
ZXRCcmVha3BvaW50LWRmZy5odG1sIFsgRmFpbHVyZSBQYXNzIF0KK3dlYmtpdC5vcmcvYi8xMzQ5
ODIgaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZGZnLWFuZC1tb2RpZnktbG9jYWwu
aHRtbCBbIEZhaWx1cmUgUGFzcyBdCiAKIHdlYmtpdC5vcmcvYi8xNDIyMDggaW5zcGVjdG9yL3Rp
bWVsaW5lL2RlYnVnZ2VyLXBhdXNlZC13aGlsZS1yZWNvcmRpbmcuaHRtbCBbIFNraXAgXQogd2Vi
a2l0Lm9yZy9iLzE0MjIwOCBpbnNwZWN0b3IvdGltZWxpbmUvZXhjZXB0aW9uLWluLWluamVjdGVk
LXNjcmlwdC13aGlsZS1yZWNvcmRpbmcuaHRtbCBbIFNraXAgXQpAQCAtMTI4LDkgKzEzMCw2IEBA
IHdlYmtpdC5vcmcvYi8xMzMwNTcgZmFzdC90YWJsZS9ib3JkZXItY29sbGFwc2luZy9jb2xsYXBz
ZWQtYm9yZGVycy1hZGpvaW5pbmctc2VjCiAKIHdlYmtpdC5vcmcvYi8xNDI1NDggZWRpdGluZy9z
ZWxlY3Rpb24vZXh0ZW5kLWJ5LWNoYXJhY3Rlci0wMDcuaHRtbCBbIEZhaWx1cmUgXQogCi13ZWJr
aXQub3JnL2IvMTI4NzM2IGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50
LWRmZy5odG1sIFsgRmFpbHVyZSBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMzQ5ODIgaW5zcGVjdG9y
LXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZGZnLWFuZC1tb2RpZnktbG9jYWwuaHRt
bCBbIEZhaWx1cmUgUGFzcyBdCi0KICMgQ1NTIEZvbnQgTG9hZGluZyBpcyBub3QgeWV0IGVuYWJs
ZWQgb24gYWxsIHBsYXRmb3Jtcwogd2Via2l0Lm9yZy9iLzEzNTM5MCBmYXN0L2Nzcy9mb250bG9h
ZGVyLWRvd25sb2FkLWVycm9yLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xMzUzOTAgZmFz
dC9jc3MvZm9udGxvYWRlci1ldmVudHMuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2NvbnNvbGUtdGVzdC5qcyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9jb25zb2xlLXRlc3QuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTQ2NGUwMTAzNjlhYjQzY2M5ZmRiNzM2YzBmYmQzMzNmMmUwNWZiYQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
cy9jb25zb2xlLXRlc3QuanMKQEAgLTAsMCArMSw3NSBAQAorSW5zcGVjdG9yVGVzdC5Db25zb2xl
ID0ge307CisKK0luc3BlY3RvclRlc3QuQ29uc29sZS5zYW5pdGl6ZUNvbnNvbGVNZXNzYWdlID0g
ZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKK3sKKyAgICBmdW5jdGlvbiBiYXNlbmFtZSh1cmwpCisg
ICAgeworICAgICAgICByZXR1cm4gdXJsLnN1YnN0cmluZyh1cmwubGFzdEluZGV4T2YoIi8iKSAr
IDEpIHx8ICI/Pz8iOworICAgIH0KKworICAgIHZhciBtZXNzYWdlID0gbWVzc2FnZU9iamVjdC5w
YXJhbXMubWVzc2FnZTsKKyAgICB2YXIgb2JqID0geworICAgICAgICBzb3VyY2U6IG1lc3NhZ2Uu
c291cmNlLAorICAgICAgICBsZXZlbDogbWVzc2FnZS5sZXZlbCwKKyAgICAgICAgdGV4dDogbWVz
c2FnZS50ZXh0LAorICAgICAgICBsb2NhdGlvbjogYmFzZW5hbWUobWVzc2FnZS51cmwpICsgIjoi
ICsgbWVzc2FnZS5saW5lICsgIjoiICsgbWVzc2FnZS5jb2x1bW4KKyAgICB9OworCisgICAgaWYg
KG1lc3NhZ2UucGFyYW1ldGVycykgeworICAgICAgICB2YXIgcGFyYW1zID0gW107CisgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgbWVzc2FnZS5wYXJhbWV0ZXJzLmxlbmd0aDsgKytpKSB7Cisg
ICAgICAgICAgICB2YXIgcGFyYW0gPSBtZXNzYWdlLnBhcmFtZXRlcnNbaV07CisgICAgICAgICAg
ICB2YXIgbyA9IHt0eXBlOiBwYXJhbS50eXBlfTsKKyAgICAgICAgICAgIGlmIChwYXJhbS5zdWJ0
eXBlKQorICAgICAgICAgICAgICAgIG8uc3VidHlwZSA9IHBhcmFtLnN1YnR5cGU7CisgICAgICAg
ICAgICBwYXJhbXMucHVzaChvKTsKKyAgICAgICAgfQorICAgICAgICBvYmoucGFyYW1ldGVycyA9
IHBhcmFtczsKKyAgICB9CisKKyAgICByZXR1cm4gb2JqOworfQorCitJbnNwZWN0b3JUZXN0LkNv
bnNvbGUuYWRkVGVzdENhc2UgPSBmdW5jdGlvbihzdWl0ZSwgYXJncykKK3sKKyAgICBpZiAoIShz
dWl0ZSBpbnN0YW5jZW9mIEluc3BlY3RvclRlc3QuQXN5bmNUZXN0U3VpdGUpKQorICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoIkNvbnNvbGUgdGVzdCBjYXNlcyBtdXN0IGJlIGFkZGVkIHRvIGFuIGFz
eW5jIHRlc3Qgc3VpdGUuIik7CisKKyAgICB2YXIge25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNz
aW9uLCBleHBlY3RlZH0gPSBhcmdzOworICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAg
bmFtZSwKKyAgICAgICAgZGVzY3JpcHRpb24sCisgICAgICAgIHRlc3Q6IGZ1bmN0aW9uKHJlc29s
dmUsIHJlamVjdCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hd2FpdEV2ZW50KHsKKyAg
ICAgICAgICAgICAgICBldmVudDogIkNvbnNvbGUubWVzc2FnZUFkZGVkIiwKKyAgICAgICAgICAg
IH0pCisgICAgICAgICAgICAudGhlbihmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7CisgICAgICAg
ICAgICAgICAgdmFyIGNvbnNvbGVNZXNzYWdlID0gbWVzc2FnZU9iamVjdC5wYXJhbXMubWVzc2Fn
ZTsKKyAgICAgICAgICAgICAgICB2YXIge3NvdXJjZSwgbGV2ZWwsIHRleHQsIHBhcmFtZXRlcnN9
ID0gY29uc29sZU1lc3NhZ2U7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQo
c291cmNlID09PSBleHBlY3RlZC5zb3VyY2UsICJDb25zb2xlTWVzc2FnZSB0eXBlIHNob3VsZCBi
ZSAnIiArIGV4cGVjdGVkLnNvdXJjZSArICInLiIpOworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0KGxldmVsID09PSBleHBlY3RlZC5sZXZlbCwgIkNvbnNvbGVNZXNzYWdlIGxl
dmVsIHNob3VsZCBiZSAnIiArIGV4cGVjdGVkLmxldmVsICsgIicuIik7CisKKyAgICAgICAgICAg
ICAgICBpZiAoZXhwZWN0ZWQudGV4dCkKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnQodGV4dCA9PT0gZXhwZWN0ZWQudGV4dCwgIkNvbnNvbGVNZXNzYWdlIHRleHQgc2hv
dWxkIGJlICciICsgZXhwZWN0ZWQudGV4dCArICInLiIpOworCisgICAgICAgICAgICAgICAgaWYg
KGV4cGVjdGVkLnBhcmFtZXRlcnMpIHsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnQocGFyYW1ldGVycy5sZW5ndGggPT09IGV4cGVjdGVkLnBhcmFtZXRlcnMubGVuZ3Ro
LCAiQ29uc29sZU1lc3NhZ2UgcGFyYW1ldGVycy5sZW5ndGggPT09ICIgKyBleHBlY3RlZC5wYXJh
bWV0ZXJzLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
cGFyYW1ldGVycy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGV4
cGVjdGVkVHlwZSA9IGV4cGVjdGVkLnBhcmFtZXRlcnNbaV07CisgICAgICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChwYXJhbWV0ZXJzW2ldLnR5cGUgPT09IGV4cGVjdGVk
VHlwZSwgIkNvbnNvbGVNZXNzYWdlIHBhcmFtZXRlciAiICsgaSArICIgc2hvdWxkIGhhdmUgdHlw
ZSAnIiArIGV4cGVjdGVkVHlwZSArICInLiIpOworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICAgICAg
fSkKKyAgICAgICAgICAgIC5jYXRjaChyZWplY3QpOworCisgICAgICAgICAgICAvLyBDYXVzZSBh
IG1lc3NhZ2VBZGRlZCBldmVudCB0byBiZSBnZW5lcmF0ZWQuCisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiRXZhbHVhdGluZyBleHByZXNzaW9uOiAiICsgZXhwcmVzc2lvbik7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKHsKKyAgICAgICAgICAgICAgICBtZXRo
b2Q6ICJSdW50aW1lLmV2YWx1YXRlIiwKKyAgICAgICAgICAgICAgICBwYXJhbXM6IHtleHByZXNz
aW9ufQorICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9KTsKK30KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm9iZS10ZXN0Lmpz
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb2JlLXRlc3Qu
anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGU2ZDFjOGMyYWJiMTg2YzhiNGUwOWNmMWE1YzRlN2Q3ZWYwNWUyMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9wcm9iZS10ZXN0LmpzCkBAIC0wLDAgKzEsMTI3IEBACit3aW5kb3cuUHJvYmVIZWxwZXIg
PSB7fTsKKworUHJvYmVIZWxwZXIuc2ltcGxpZmllZFByb2JlU2FtcGxlID0gZnVuY3Rpb24obWVz
c2FnZU9iamVjdCkKK3sKKyAgICB2YXIgZGF0YSA9IG1lc3NhZ2VPYmplY3QucGFyYW1zLnNhbXBs
ZTsKKyAgICByZXR1cm4geworICAgICAgICBwcm9iZUlkOiBkYXRhLnByb2JlSWQsCisgICAgICAg
IGJhdGNoSWQ6IGRhdGEuYmF0Y2hJZCwKKyAgICAgICAgc2FtcGxlSWQ6IGRhdGEuc2FtcGxlSWQs
CisgICAgICAgIHBheWxvYWQ6IGRhdGEucGF5bG9hZAorICAgIH07Cit9CisKK1Byb2JlSGVscGVy
LnN0cmluZ2lmeVByb2JlU2FtcGxlID0gZnVuY3Rpb24oUHJvYmVTYW1wbGUpCit7CisgICAgY29u
c29sZS5hc3NlcnQoUHJvYmVTYW1wbGUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuUHJvYmVTYW1w
bGUsICJVbmV4cGVjdGVkIG9iamVjdCB0eXBlISIpOworICAgIHJldHVybiBKU09OLnN0cmluZ2lm
eSh7CisgICAgICAgICJzYW1wbGVJZCI6IFByb2JlU2FtcGxlLnNhbXBsZUlkLAorICAgICAgICAi
YmF0Y2hJZCI6IFByb2JlU2FtcGxlLmJhdGNoSWQsCisgICAgfSk7Cit9CisKK1Byb2JlSGVscGVy
Lmluc3RhbGxUcmFjaW5nTGlzdGVuZXJzID0gZnVuY3Rpb24oKQoreworICAgIGlmICghV2ViSW5z
cGVjdG9yLmRlYnVnZ2VyTWFuYWdlciB8fCAhV2ViSW5zcGVjdG9yLnByb2JlTWFuYWdlcikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuQnJlYWtwb2ludEFk
ZGVkLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtw
b2ludCB3YXMgYWRkZWQuIik7CisgICAgfSk7CisKKyAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJN
YW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVu
dC5CcmVha3BvaW50UmVtb3ZlZCwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIkJyZWFrcG9pbnQgd2FzIHJlbW92ZWQuIik7CisgICAgfSk7CisKKyAgICBXZWJJ
bnNwZWN0b3IuQnJlYWtwb2ludC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5CcmVha3Bv
aW50LkV2ZW50LkRpc2FibGVkU3RhdGVEaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAg
ICAgIHZhciBicmVha3BvaW50ID0gZXZlbnQudGFyZ2V0OworICAgICAgICBjb25zb2xlLmFzc2Vy
dChicmVha3BvaW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQsICJVbmV4cGVj
dGVkIG9iamVjdCB0eXBlISIpOworCisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3Bv
aW50IGRpc2FibGVkIHN0YXRlIGNoYW5nZWQ6ICIgKyBicmVha3BvaW50LmRpc2FibGVkKTsKKyAg
ICB9KTsKKworICAgIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuUmVzb2x2ZWRTdGF0ZURpZENoYW5nZSwgZnVuY3Rp
b24oZXZlbnQpIHsKKyAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSBldmVudC50YXJnZXQ7CisgICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KGJyZWFrcG9pbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQnJl
YWtwb2ludCwgIlVuZXhwZWN0ZWQgb2JqZWN0IHR5cGUhIik7CisKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIkJyZWFrcG9pbnQgcmVzb2x2ZWQgc3RhdGUgY2hhbmdlZDogIiArIGJyZWFrcG9p
bnQucmVzb2x2ZWQpOworICAgIH0pOworCisgICAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5BdXRvQ29udGludWVE
aWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHZhciBicmVha3BvaW50ID0gZXZl
bnQudGFyZ2V0OworICAgICAgICBjb25zb2xlLmFzc2VydChicmVha3BvaW50IGluc3RhbmNlb2Yg
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQsICJVbmV4cGVjdGVkIG9iamVjdCB0eXBlISIpOworCisg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50IGF1dG9jb250aW51ZSBzdGF0ZSBj
aGFuZ2VkOiAiICsgYnJlYWtwb2ludC5hdXRvQ29udGludWUpOworICAgIH0pOworCisgICAgV2Vi
SW5zcGVjdG9yLkJyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtw
b2ludC5FdmVudC5Db25kaXRpb25EaWRDaGFuZ2UsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAg
IHZhciBicmVha3BvaW50ID0gZXZlbnQudGFyZ2V0OworICAgICAgICBjb25zb2xlLmFzc2VydChi
cmVha3BvaW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQsICJVbmV4cGVjdGVk
IG9iamVjdCB0eXBlISIpOworCisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVha3BvaW50
IGNvbmRpdGlvbiBjaGFuZ2VkOiAiICsgYnJlYWtwb2ludC5jb25kaXRpb24pOworICAgIH0pOwor
CisgICAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuQnJlYWtwb2ludC5FdmVudC5BY3Rpb25zRGlkQ2hhbmdlLCBmdW5jdGlvbihldmVudCkgewor
ICAgICAgICB2YXIgYnJlYWtwb2ludCA9IGV2ZW50LnRhcmdldDsKKyAgICAgICAgY29uc29sZS5h
c3NlcnQoYnJlYWtwb2ludCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LCAiVW5l
eHBlY3RlZCBvYmplY3QgdHlwZSEiKTsKKworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJl
YWtwb2ludCBhY3Rpb25zIGNoYW5nZWQuIE5ldyBjb3VudDogIiArIGJyZWFrcG9pbnQuYWN0aW9u
cy5sZW5ndGgpOworICAgIH0pOworCisgICAgV2ViSW5zcGVjdG9yLnByb2JlTWFuYWdlci5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Qcm9iZU1hbmFnZXIuRXZlbnQuUHJvYmVTZXRBZGRl
ZCwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgdmFyIHByb2JlU2V0ID0gZXZlbnQuZGF0YS5w
cm9iZVNldDsKKyAgICAgICAgY29uc29sZS5hc3NlcnQocHJvYmVTZXQgaW5zdGFuY2VvZiBXZWJJ
bnNwZWN0b3IuUHJvYmVTZXQsICJVbmV4cGVjdGVkIG9iamVjdCB0eXBlISIpOworCisgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJQcm9iZSBzZXQgd2FzIGFkZGVkLiBOZXcgY291bnQ6ICIgKyBX
ZWJJbnNwZWN0b3IucHJvYmVNYW5hZ2VyLnByb2JlU2V0cy5sZW5ndGgpOworICAgIH0pOworCisg
ICAgV2ViSW5zcGVjdG9yLnByb2JlTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5Qcm9iZU1hbmFnZXIuRXZlbnQuUHJvYmVTZXRSZW1vdmVkLCBmdW5jdGlvbihldmVudCkgewor
ICAgICAgICB2YXIgcHJvYmVTZXQgPSBldmVudC5kYXRhLnByb2JlU2V0OworICAgICAgICBjb25z
b2xlLmFzc2VydChwcm9iZVNldCBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Qcm9iZVNldCwgIlVu
ZXhwZWN0ZWQgb2JqZWN0IHR5cGUhIik7CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBy
b2JlIHNldCB3YXMgcmVtb3ZlZC4gTmV3IGNvdW50OiAiICsgV2ViSW5zcGVjdG9yLnByb2JlTWFu
YWdlci5wcm9iZVNldHMubGVuZ3RoKTsKKyAgICB9KTsKKworICAgIFdlYkluc3BlY3Rvci5Qcm9i
ZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Qcm9iZS5FdmVudC5FeHByZXNzaW9uQ2hh
bmdlZCwgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgdmFyIHByb2JlID0gZXZlbnQudGFyZ2V0
OworICAgICAgICBjb25zb2xlLmFzc2VydChwcm9iZSBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Q
cm9iZSwgIlVuZXhwZWN0ZWQgb2JqZWN0IHR5cGUhIik7CisKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIlByb2JlIHdpdGggaWRlbnRpZmllciAiICsgcHJvYmUuaWQgKyAiIGNoYW5nZWQgZXhw
cmVzc2lvbjogIiArIHByb2JlLmV4cHJlc3Npb24pOworICAgIH0pOworCisgICAgV2ViSW5zcGVj
dG9yLlByb2JlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlByb2JlLkV2ZW50LlNhbXBs
ZUFkZGVkLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICB2YXIgcHJvYmUgPSBldmVudC50YXJn
ZXQ7CisgICAgICAgIHZhciBzYW1wbGUgPSBldmVudC5kYXRhOworICAgICAgICBjb25zb2xlLmFz
c2VydChwcm9iZSBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Qcm9iZSwgIlVuZXhwZWN0ZWQgb2Jq
ZWN0IHR5cGUhIik7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KHNhbXBsZSBpbnN0YW5jZW9mIFdl
Ykluc3BlY3Rvci5Qcm9iZVNhbXBsZSwgIlVuZXhwZWN0ZWQgb2JqZWN0IHR5cGUhIik7CisKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlByb2JlIHdpdGggaWRlbnRpZmllciAiICsgcHJvYmUu
aWQgKyAiIGFkZGVkIHNhbXBsZTogIiArIHNhbXBsZSk7CisgICAgfSk7CisKKyAgICBXZWJJbnNw
ZWN0b3IuUHJvYmUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUHJvYmUuRXZlbnQuU2Ft
cGxlc0NsZWFyZWQsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHZhciBwcm9iZSA9IGV2ZW50
LnRhcmdldDsKKyAgICAgICAgY29uc29sZS5hc3NlcnQocHJvYmUgaW5zdGFuY2VvZiBXZWJJbnNw
ZWN0b3IuUHJvYmUsICJVbmV4cGVjdGVkIG9iamVjdCB0eXBlISIpOworCisgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJQcm9iZSB3aXRoIGlkZW50aWZpZXIgIiArIHByb2JlLmlkICsgIiBjbGVh
cmVkIGFsbCBzYW1wbGVzLiIpOworICAgIH0pOworCisgICAgV2ViSW5zcGVjdG9yLlByb2JlU2V0
LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlByb2JlU2V0LkV2ZW50LlByb2JlQWRkZWQs
IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHZhciBwcm9iZSA9IGV2ZW50LmRhdGE7CisgICAg
ICAgIHZhciBwcm9iZVNldCA9IGV2ZW50LnRhcmdldDsKKyAgICAgICAgY29uc29sZS5hc3NlcnQo
cHJvYmUgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuUHJvYmUsICJVbmV4cGVjdGVkIG9iamVjdCB0
eXBlISIpOworICAgICAgICBjb25zb2xlLmFzc2VydChwcm9iZVNldCBpbnN0YW5jZW9mIFdlYklu
c3BlY3Rvci5Qcm9iZVNldCwgIlVuZXhwZWN0ZWQgb2JqZWN0IHR5cGUhIik7CisKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coIlByb2JlIHdpdGggaWRlbnRpZmllciAiICsgcHJvYmUuaWQgKyAi
IHdhcyBhZGRlZCB0byBwcm9iZSBzZXQuIik7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQ
cm9iZSBzZXQncyBwcm9iZSBjb3VudDogIiArIHByb2JlU2V0LnByb2Jlcy5sZW5ndGgpOworICAg
IH0pOworCisgICAgV2ViSW5zcGVjdG9yLlByb2JlU2V0LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLlByb2JlU2V0LkV2ZW50LlByb2JlUmVtb3ZlZCwgZnVuY3Rpb24oZXZlbnQpIHsKKyAg
ICAgICAgdmFyIHByb2JlID0gZXZlbnQuZGF0YTsKKyAgICAgICAgdmFyIHByb2JlU2V0ID0gZXZl
bnQudGFyZ2V0OworICAgICAgICBjb25zb2xlLmFzc2VydChwcm9iZSBpbnN0YW5jZW9mIFdlYklu
c3BlY3Rvci5Qcm9iZSwgIlVuZXhwZWN0ZWQgb2JqZWN0IHR5cGUhIik7CisgICAgICAgIGNvbnNv
bGUuYXNzZXJ0KHByb2JlU2V0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlByb2JlU2V0LCAiVW5l
eHBlY3RlZCBvYmplY3QgdHlwZSEiKTsKKworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUHJv
YmUgd2l0aCBpZGVudGlmaWVyICIgKyBwcm9iZS5pZCArICIgd2FzIHJlbW92ZWQgZnJvbSBwcm9i
ZSBzZXQuIik7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQcm9iZSBzZXQncyBwcm9iZSBj
b3VudDogIiArIHByb2JlU2V0LnByb2Jlcy5sZW5ndGgpOworICAgIH0pOworfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2FzeW5jLXRlc3Qtc3VpdGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2FzeW5jLXRlc3Qtc3VpdGUt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYTMzYTc3ODU2ZjQ4
NTIyNmQwZGY5OTYwY2RiOTQ2OTU0MTc4YmQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9hc3luYy10
ZXN0LXN1aXRlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLVBB
U1M6IGluc3RhbnRpYXRpbmcgQXN5bmNUZXN0U3VpdGUgcmVxdWlyZXMgbmFtZSBhcmd1bWVudC4K
LVBBU1M6IGluc3RhbnRpYXRpbmcgQXN5bmNUZXN0U3VpdGUgcmVxdWlyZXMgc3RyaW5nIG5hbWUg
YXJndW1lbnQuCi1QQVNTOiBzaG91bGQgbm90IGJlIGFibGUgdG8gYWRkIGVtcHR5IHRlc3QgY2Fz
ZS4KLVBBU1M6IHNob3VsZCBub3QgYmUgYWJsZSB0byBhZGQgbm9uLW9iamVjdCB0ZXN0IGNhc2Uu
Ci1QQVNTOiB0ZXN0IGNhc2Ugc2hvdWxkIHJlcXVpcmUgc3RyaW5nIG5hbWUuCi1QQVNTOiB0ZXN0
IGNhc2Ugc2hvdWxkIHJlcXVpcmUgdGVzdCBmdW5jdGlvbi4KLVBBU1M6IHNob3VsZCBub3QgYmUg
YWJsZSB0byBydW4gZW1wdHkgdGVzdCBzdWl0ZS4KLQotPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBB
c3luY1Rlc3RTdWl0ZS5SdW5Ud2ljZVN1aXRlCi1QQVNTOiBzaG91bGQgbm90IGJlIGFibGUgdG8g
cnVuIGEgdGVzdCBzdWl0ZSB0d2ljZS4KLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEdW1teVRlc3Qw
Ci0KLT09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQXN5bmNUZXN0U3VpdGUuU2VxdWVudGlhbEV4ZWN1
dGlvbgotUEFTUzogQXN5bmNUZXN0U3VpdGUuUnVuVGVzdENhc2VzKCkgc2hvdWxkIHJldHVybiBh
IFByb21pc2UuCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogRHVtbXlUZXN0MQotLS0gUnVubmluZyB0
ZXN0IGNhc2U6IER1bW15VGVzdDIKLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEdW1teVRlc3QzCi0t
LSBSdW5uaW5nIHRlc3QgY2FzZTogRmFpbGluZ1Rlc3Q0Ci0hISBFWENFUFRJT046IFtvYmplY3Qg
T2JqZWN0XQotUEFTUzogUHJvbWlzZSBmcm9tIHNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZS5ydW5U
ZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0IHdoZW4gYSB0ZXN0IGNhc2UgZmFpbHMuCi1QQVNTOiBQ
cm9taXNlIGZyb20gc2VxdWVudGlhbEV4ZWN1dGlvblN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3Vs
ZCByZWplY3Qgd2l0aG91dCBhbHRlcmluZyBpdHMgcmVzdWx0IHZhbHVlLgotUEFTUzogc2VxdWVu
dGlhbEV4ZWN1dGlvblN1aXRlIHNob3VsZCBoYXZlIGV4ZWN1dGVkIGZvdXIgdGVzdHMuCi1QQVNT
OiBzZXF1ZW50aWFsRXhlY3V0aW9uU3VpdGUgc2hvdWxkIGhhdmUgcGFzc2VkIHRocmVlIHRlc3Rz
LgotUEFTUzogc2VxdWVudGlhbEV4ZWN1dGlvblN1aXRlIHNob3VsZCBoYXZlIGZhaWxlZCAxIHRl
c3QuCi1QQVNTOiBzZXF1ZW50aWFsRXhlY3V0aW9uU3VpdGUgc2hvdWxkIGhhdmUgc2tpcHBlZCB6
ZXJvIHRlc3RzLgotCi09PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEFzeW5jVGVzdFN1aXRlLkFib3J0
T25GYWlsdXJlCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogUGFzc2luZ1Rlc3Q1Ci0tLSBSdW5uaW5n
IHRlc3QgY2FzZTogRmFpbGluZ1Rlc3Q2Ci0hISBFWENFUFRJT046IHsidG9rZW4iOjY2Nn0KLVBB
U1M6IFByb21pc2UgZnJvbSBhYm9ydE9uRmFpbHVyZVN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3Vs
ZCByZWplY3Qgd2hlbiBhIHRlc3QgY2FzZSBmYWlscy4KLVBBU1M6IFByb21pc2UgZnJvbSBhYm9y
dE9uRmFpbHVyZVN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3Qgd2l0aG91dCBhbHRl
cmluZyBpdHMgcmVzdWx0IHZhbHVlLgotUEFTUzogYWJvcnRPbkZhaWx1cmVTdWl0ZSBzaG91bGQg
aGF2ZSBleGVjdXRlZCB0d28gdGVzdHMuCi1QQVNTOiBhYm9ydE9uRmFpbHVyZVN1aXRlIHNob3Vs
ZCBoYXZlIHBhc3NlZCBvbmUgdGVzdC4KLVBBU1M6IGFib3J0T25GYWlsdXJlU3VpdGUgc2hvdWxk
IGhhdmUgZmFpbGVkIG9uZSB0ZXN0LgotUEFTUzogYWJvcnRPbkZhaWx1cmVTdWl0ZSBzaG91bGQg
aGF2ZSBza2lwcGVkIG9uZSB0ZXN0LgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvYXN5bmMtdGVzdC1zdWl0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL2FzeW5jLXRlc3Qtc3VpdGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNzVjYTE5MWU0ZDlkZTZiMjhmZTFiZDRjMDE0M2U1MGU4NWJhZWUxZi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvYXN5bmMtdGVzdC1zdWl0ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTc4
ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdHJ5IHsKLSAgICAg
ICAgbmV3IEluc3BlY3RvclRlc3QuQXN5bmNUZXN0U3VpdGUoKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIkZBSUw6IGluc3RhbnRpYXRpbmcgQXN5bmNUZXN0U3VpdGUgcmVxdWlyZXMgbmFt
ZSBhcmd1bWVudC4iKTsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJQQVNTOiBpbnN0YW50aWF0aW5nIEFzeW5jVGVzdFN1aXRlIHJlcXVpcmVzIG5hbWUgYXJn
dW1lbnQuIik7Ci0gICAgfQotCi0gICAgdHJ5IHsKLSAgICAgICAgbmV3IEluc3BlY3RvclRlc3Qu
QXN5bmNUZXN0U3VpdGUoe30pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDogaW5z
dGFudGlhdGluZyBBc3luY1Rlc3RTdWl0ZSByZXF1aXJlcyBzdHJpbmcgbmFtZSBhcmd1bWVudC4i
KTsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiBp
bnN0YW50aWF0aW5nIEFzeW5jVGVzdFN1aXRlIHJlcXVpcmVzIHN0cmluZyBuYW1lIGFyZ3VtZW50
LiIpOwotICAgIH0KLQotICAgIHZhciBiYWRBcmdzU3VpdGUgPSBuZXcgSW5zcGVjdG9yVGVzdC5B
c3luY1Rlc3RTdWl0ZSgiZHVtbXkiKTsKLSAgICB0cnkgewotICAgICAgICBiYWRBcmdzU3VpdGUu
YWRkVGVzdENhc2UoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6IHNob3VsZCBu
b3QgYmUgYWJsZSB0byBhZGQgZW1wdHkgdGVzdCBjYXNlLiIpOwotICAgIH0gY2F0Y2ggKGUpIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1M6IHNob3VsZCBub3QgYmUgYWJsZSB0byBh
ZGQgZW1wdHkgdGVzdCBjYXNlLiIpOwotICAgIH0KLSAgICB0cnkgewotICAgICAgICBiYWRBcmdz
U3VpdGUuYWRkVGVzdENhc2UoInN0cmluZyIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
RkFJTDogc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGFkZCBub24tb2JqZWN0IHRlc3QgY2FzZS4iKTsK
LSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiBzaG91
bGQgbm90IGJlIGFibGUgdG8gYWRkIG5vbi1vYmplY3QgdGVzdCBjYXNlLiIpOwotICAgIH0KLSAg
ICB0cnkgewotICAgICAgICBiYWRBcmdzU3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICAgICAg
bmFtZToge30sCi0gICAgICAgICAgICB0ZXN0OiBmdW5jdGlvbigpIHt9LAotICAgICAgICB9KTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6IHRlc3QgY2FzZSBzaG91bGQgcmVxdWly
ZSBzdHJpbmcgbmFtZS4iKTsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCJQQVNTOiB0ZXN0IGNhc2Ugc2hvdWxkIHJlcXVpcmUgc3RyaW5nIG5hbWUuIik7Ci0g
ICAgfQotICAgIHRyeSB7Ci0gICAgICAgIGJhZEFyZ3NTdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAg
ICAgICAgICBuYW1lOiAiZm9vIiwKLSAgICAgICAgICAgIHRlc3Q6IG51bGwsCi0gICAgICAgIH0p
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDogdGVzdCBjYXNlIHNob3VsZCByZXF1
aXJlIHRlc3QgZnVuY3Rpb24uIik7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiUEFTUzogdGVzdCBjYXNlIHNob3VsZCByZXF1aXJlIHRlc3QgZnVuY3Rpb24u
Iik7Ci0gICAgfQotCi0gICAgdmFyIHJ1bkVtcHR5U3VpdGUgPSBuZXcgSW5zcGVjdG9yVGVzdC5B
c3luY1Rlc3RTdWl0ZSgiQXN5bmNUZXN0U3VpdGUuUnVuRW1wdHlTdWl0ZSIpOwotICAgIHRyeSB7
Ci0gICAgICAgIHJ1bkVtcHR5U3VpdGUucnVuVGVzdENhc2VzKCk7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJGQUlMOiBzaG91bGQgbm90IGJlIGFibGUgdG8gcnVuIGVtcHR5IHRlc3Qgc3Vp
dGUuIik7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFT
Uzogc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHJ1biBlbXB0eSB0ZXN0IHN1aXRlLiIpOwotICAgIH0K
LQotICAgIHZhciBydW5Ud2ljZVN1aXRlID0gbmV3IEluc3BlY3RvclRlc3QuQXN5bmNUZXN0U3Vp
dGUoIkFzeW5jVGVzdFN1aXRlLlJ1blR3aWNlU3VpdGUiKTsKLSAgICBydW5Ud2ljZVN1aXRlLmFk
ZFRlc3RDYXNlKHsKLSAgICAgICAgbmFtZTogIkR1bW15VGVzdDAiLAotICAgICAgICBkZXNjcmlw
dGlvbjogIkNoZWNrIHRoYXQgYSBzdWl0ZSBjYW4ndCBydW4gbW9yZSB0aGFuIG9uY2UuIiwKLSAg
ICAgICAgdGVzdDogZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICByZXNv
bHZlKCk7Ci0gICAgICAgIH0KLSAgICB9KTsKLQotICAgIHZhciByZXN1bHQgPSBydW5Ud2ljZVN1
aXRlLnJ1blRlc3RDYXNlcygpOwotICAgIHRyeSB7Ci0gICAgICAgIC8vIFRlc3QgY2FzZXMgd29u
J3QgcnVuIGluIHRoaXMgZXZlbnQgbG9vcDsgdGhpcyBjYWxsIHNob3VsZCBzdGlsbCB0aHJvdy4K
LSAgICAgICAgLy8gTGF0ZXIgdGVzdHMgYXJlIGNoYWluZWQgdG8gdGhpcyBzdWl0ZSB0byBhdm9p
ZCBub25kZXRlcm1pbmlzbS4KLSAgICAgICAgcnVuVHdpY2VTdWl0ZS5ydW5UZXN0Q2FzZXMoKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6IHNob3VsZCBub3QgYmUgYWJsZSB0byBy
dW4gYSB0ZXN0IHN1aXRlIHR3aWNlLiIpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIlBBU1M6IHNob3VsZCBub3QgYmUgYWJsZSB0byBydW4gYSB0ZXN0IHN1
aXRlIHR3aWNlLiIpOwotICAgIH0KLQotICAgIHZhciByZWplY3RUb2tlbiA9IHsidG9rZW4iOiA2
NjZ9OwotICAgIHZhciB0aHJvd25FcnJvciA9IG5ldyBFcnJvcihyZWplY3RUb2tlbik7Ci0KLSAg
ICB2YXIgc2VxdWVudGlhbEV4ZWN1dGlvblN1aXRlID0gbmV3IEluc3BlY3RvclRlc3QuQXN5bmNU
ZXN0U3VpdGUoIkFzeW5jVGVzdFN1aXRlLlNlcXVlbnRpYWxFeGVjdXRpb24iKTsKLSAgICBzZXF1
ZW50aWFsRXhlY3V0aW9uU3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICBuYW1lOiAiRHVtbXlU
ZXN0MSIsCi0gICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGVzdCBjYXNlIGV4ZWN1dGlvbiBv
cmRlci4iLAotICAgICAgICB0ZXN0OiBmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKLSAgICAg
ICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAgfQotICAgIH0pOwotICAgIHNlcXVlbnRpYWxFeGVj
dXRpb25TdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJEdW1teVRlc3QyIiwKLSAg
ICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0ZXN0IGNhc2UgZXhlY3V0aW9uIG9yZGVyLiIsCi0g
ICAgICAgIHRlc3Q6IGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewotICAgICAgICAgICAgcmVz
b2x2ZSgpOwotICAgICAgICB9Ci0gICAgfSk7Ci0gICAgc2VxdWVudGlhbEV4ZWN1dGlvblN1aXRl
LmFkZFRlc3RDYXNlKHsKLSAgICAgICAgbmFtZTogIkR1bW15VGVzdDMiLAotICAgICAgICBkZXNj
cmlwdGlvbjogIkNoZWNrIHRlc3QgY2FzZSBleGVjdXRpb24gb3JkZXIuIiwKLSAgICAgICAgdGVz
dDogZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICByZXNvbHZlKCk7Ci0g
ICAgICAgIH0KLSAgICB9KTsKLSAgICBzZXF1ZW50aWFsRXhlY3V0aW9uU3VpdGUuYWRkVGVzdENh
c2UoewotICAgICAgICBuYW1lOiAiRmFpbGluZ1Rlc3Q0IiwKLSAgICAgICAgZGVzY3JpcHRpb246
ICJDaGVjayB0aGF0IHRlc3QgZmFpbHMgYnkgdGhyb3dpbmcgYW4gRXJyb3IgaW5zdGFuY2UuIiwK
LSAgICAgICAgdGVzdDogZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICB0
aHJvdyB0aHJvd25FcnJvcjsKLSAgICAgICAgfQotICAgIH0pOwotCi0gICAgdmFyIGFib3J0T25G
YWlsdXJlU3VpdGUgPSBuZXcgSW5zcGVjdG9yVGVzdC5Bc3luY1Rlc3RTdWl0ZSgiQXN5bmNUZXN0
U3VpdGUuQWJvcnRPbkZhaWx1cmUiKTsKLSAgICBhYm9ydE9uRmFpbHVyZVN1aXRlLmFkZFRlc3RD
YXNlKHsKLSAgICAgICAgbmFtZTogIlBhc3NpbmdUZXN0NSIsCi0gICAgICAgIGRlc2NyaXB0aW9u
OiAiVGhpcyB0ZXN0IGlzIGEgZHVtbXkuIiwKLSAgICAgICAgdGVzdDogZnVuY3Rpb24ocmVzb2x2
ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICByZXNvbHZlKCk7Ci0gICAgICAgIH0KLSAgICB9KTsK
LSAgICBhYm9ydE9uRmFpbHVyZVN1aXRlLmFkZFRlc3RDYXNlKHsKLSAgICAgICAgbmFtZTogIkZh
aWxpbmdUZXN0NiIsCi0gICAgICAgIGRlc2NyaXB0aW9uOiAiVGhpcyB0ZXN0IHNob3VsZCBmYWls
IGJ5IGV4cGxpY2l0bHkgY2FsbGluZyB0aGUgYHJlamVjdGAgY2FsbGJhY2suIiwKLSAgICAgICAg
dGVzdDogZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICByZWplY3QocmVq
ZWN0VG9rZW4pOwotICAgICAgICB9Ci0gICAgfSk7Ci0gICAgYWJvcnRPbkZhaWx1cmVTdWl0ZS5h
ZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJQYXNzaW5nVGVzdDciLAotICAgICAgICBkZXNj
cmlwdGlvbjogIlRoaXMgdGVzdCBzaG91bGQgbm90IGV4ZWN1dGVkIHdoZW4gdGhlIHByZWNlZGlu
ZyB0ZXN0IGZhaWxzLiIsCi0gICAgICAgIHRlc3Q6IGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkg
ewotICAgICAgICAgICAgcmVzb2x2ZSgpOwotICAgICAgICB9Ci0gICAgfSk7Ci0KLSAgICByZXN1
bHQgPSByZXN1bHQudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIHByb21pc2UgPSBzZXF1
ZW50aWFsRXhlY3V0aW9uU3VpdGUucnVuVGVzdENhc2VzKCk7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0KHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UsICJBc3luY1Rlc3RTdWl0ZS5SdW5U
ZXN0Q2FzZXMoKSBzaG91bGQgcmV0dXJuIGEgUHJvbWlzZS4iKTsKLSAgICAgICAgcmV0dXJuIHBy
b21pc2U7Ci0gICAgfSk7Ci0gICAgcmVzdWx0ID0gcmVzdWx0LnRoZW4oZnVuY3Rpb24gcmVzb2x2
ZWQoKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiBQcm9taXNlIGZyb20gc2Vx
dWVudGlhbEV4ZWN1dGlvblN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3Qgd2hlbiBh
IHRlc3QgY2FzZSBmYWlscy4iKTsKLSAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOyAv
LyBDb250aW51ZSB0aGlzIHRlc3QuCi0gICAgfSwgZnVuY3Rpb24gcmVqZWN0ZWQoZSkgewotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogUHJvbWlzZSBmcm9tIHNlcXVlbnRpYWxFeGVj
dXRpb25TdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0IHdoZW4gYSB0ZXN0IGNhc2Ug
ZmFpbHMuIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGUgPT09IHRocm93bkVycm9y
LCAiUHJvbWlzZSBmcm9tIHNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZS5ydW5UZXN0Q2FzZXMoKSBz
aG91bGQgcmVqZWN0IHdpdGhvdXQgYWx0ZXJpbmcgaXRzIHJlc3VsdCB2YWx1ZS4iKTsKLQotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChzZXF1ZW50aWFsRXhlY3V0aW9uU3VpdGUucnVuQ291
bnQgPT09IDQsICJzZXF1ZW50aWFsRXhlY3V0aW9uU3VpdGUgc2hvdWxkIGhhdmUgZXhlY3V0ZWQg
Zm91ciB0ZXN0cy4iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoc2VxdWVudGlhbEV4
ZWN1dGlvblN1aXRlLnBhc3NDb3VudCA9PT0gMywgInNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZSBz
aG91bGQgaGF2ZSBwYXNzZWQgdGhyZWUgdGVzdHMuIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0KHNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZS5mYWlsQ291bnQgPT09IDEsICJzZXF1ZW50
aWFsRXhlY3V0aW9uU3VpdGUgc2hvdWxkIGhhdmUgZmFpbGVkIDEgdGVzdC4iKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnQoc2VxdWVudGlhbEV4ZWN1dGlvblN1aXRlLnNraXBDb3VudCA9
PT0gMCwgInNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZSBzaG91bGQgaGF2ZSBza2lwcGVkIHplcm8g
dGVzdHMuIik7Ci0gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsgLy8gQ29udGludWUg
dGhpcyB0ZXN0LgotICAgIH0pOwotCi0gICAgcmVzdWx0ID0gcmVzdWx0LnRoZW4oZnVuY3Rpb24o
KSB7Ci0gICAgICAgIHJldHVybiBhYm9ydE9uRmFpbHVyZVN1aXRlLnJ1blRlc3RDYXNlcygpOwot
ICAgIH0pLnRoZW4oZnVuY3Rpb24gcmVzb2x2ZWQoKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJGQUlMOiBQcm9taXNlIGZyb20gYWJvcnRPbkZhaWx1cmVTdWl0ZS5ydW5UZXN0Q2FzZXMo
KSBzaG91bGQgcmVqZWN0IHdoZW4gYSB0ZXN0IGNhc2UgZmFpbHMuIik7Ci0gICAgICAgIHJldHVy
biBQcm9taXNlLnJlc29sdmUoKTsgLy8gQ29udGludWUgdGhpcyB0ZXN0LgotICAgIH0sIGZ1bmN0
aW9uIHJlamVjdGVkKGUpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1M6IFByb21p
c2UgZnJvbSBhYm9ydE9uRmFpbHVyZVN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3Qg
d2hlbiBhIHRlc3QgY2FzZSBmYWlscy4iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQo
ZSA9PT0gcmVqZWN0VG9rZW4sICJQcm9taXNlIGZyb20gYWJvcnRPbkZhaWx1cmVTdWl0ZS5ydW5U
ZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0IHdpdGhvdXQgYWx0ZXJpbmcgaXRzIHJlc3VsdCB2YWx1
ZS4iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYWJvcnRPbkZhaWx1cmVTdWl0ZS5y
dW5Db3VudCA9PT0gMiwgImFib3J0T25GYWlsdXJlU3VpdGUgc2hvdWxkIGhhdmUgZXhlY3V0ZWQg
dHdvIHRlc3RzLiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhYm9ydE9uRmFpbHVy
ZVN1aXRlLnBhc3NDb3VudCA9PT0gMSwgImFib3J0T25GYWlsdXJlU3VpdGUgc2hvdWxkIGhhdmUg
cGFzc2VkIG9uZSB0ZXN0LiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhYm9ydE9u
RmFpbHVyZVN1aXRlLmZhaWxDb3VudCA9PT0gMSwgImFib3J0T25GYWlsdXJlU3VpdGUgc2hvdWxk
IGhhdmUgZmFpbGVkIG9uZSB0ZXN0LiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChh
Ym9ydE9uRmFpbHVyZVN1aXRlLnNraXBDb3VudCA9PT0gMSwgImFib3J0T25GYWlsdXJlU3VpdGUg
c2hvdWxkIGhhdmUgc2tpcHBlZCBvbmUgdGVzdC4iKTsKLQotICAgICAgICByZXR1cm4gUHJvbWlz
ZS5yZXNvbHZlKCk7IC8vIENvbnRpbnVlIHRoaXMgdGVzdC4KLSAgICB9KTsKLQotICAgIC8vIFRo
aXMgd2lsbCBmaW5pc2ggdGhlIHRlc3Qgd2hldGhlciB0aGUgY2hhaW4gd2FzIHJlc29sdmVkIG9y
IHJlamVjdGVkLgotICAgIHJlc3VsdCA9IHJlc3VsdC50aGVuKGZ1bmN0aW9uKCkgeyBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOyB9KTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkg
b25Mb2FkPSJydW5UZXN0KCkiPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2NvbnNvbGUvY29uc29sZS1tZXNzYWdlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9jb25zb2xlL2NvbnNvbGUtbWVz
c2FnZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVkM2U1YTQ4
MTQ0Mjk2ZGI1Mjg3ODQ5OTQ0MzU2MTI4ZmM0YTMwNjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Nv
bnNvbGUvY29uc29sZS1tZXNzYWdlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQ4
ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBsb2cKLUNPTlNPTEUgTUVTU0FHRTog
bGluZSAxOiBpbmZvCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogd2FybgotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE6IGVycm9yCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogZGVidWcKLVRlc3Rz
IHRoYXQgY29uc29sZS5sb2cgYW5kIHJlbGF0ZWQgQVBJcyBjYXVzZSBDb25zb2xlLm1lc3NhZ2VB
ZGRlZCBldmVudHMgdG8gYmUgZ2VuZXJhdGVkIHdpdGggY29ycmVjdCBzb3VyY2UsIHR5cGUsIGxl
dmVsLCBhbmQgcGFyYW1ldGVyIHR5cGVzLiAKLQotPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBDb25z
b2xlLk1lc3NhZ2VzRnJvbUNvbW1hbmRMaW5lQVBJCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ29u
c29sZUxvZ1N0cmluZwotRXZhbHVhdGluZyBleHByZXNzaW9uOiBjb25zb2xlLmxvZygibG9nIik7
Ci1QQVNTOiBDb25zb2xlTWVzc2FnZSB0eXBlIHNob3VsZCBiZSAnY29uc29sZS1hcGknLgotUEFT
UzogQ29uc29sZU1lc3NhZ2UgbGV2ZWwgc2hvdWxkIGJlICdsb2cnLgotUEFTUzogQ29uc29sZU1l
c3NhZ2UgdGV4dCBzaG91bGQgYmUgJ2xvZycuCi1QQVNTOiBDb25zb2xlTWVzc2FnZSBwYXJhbWV0
ZXJzLmxlbmd0aCA9PT0gMQotUEFTUzogQ29uc29sZU1lc3NhZ2UgcGFyYW1ldGVyIDAgc2hvdWxk
IGhhdmUgdHlwZSAnc3RyaW5nJy4KLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENvbnNvbGVJbmZv
U3RyaW5nCi1FdmFsdWF0aW5nIGV4cHJlc3Npb246IGNvbnNvbGUuaW5mbygiaW5mbyIpOwotUEFT
UzogQ29uc29sZU1lc3NhZ2UgdHlwZSBzaG91bGQgYmUgJ2NvbnNvbGUtYXBpJy4KLVBBU1M6IENv
bnNvbGVNZXNzYWdlIGxldmVsIHNob3VsZCBiZSAnaW5mbycuCi1QQVNTOiBDb25zb2xlTWVzc2Fn
ZSB0ZXh0IHNob3VsZCBiZSAnaW5mbycuCi1QQVNTOiBDb25zb2xlTWVzc2FnZSBwYXJhbWV0ZXJz
Lmxlbmd0aCA9PT0gMQotUEFTUzogQ29uc29sZU1lc3NhZ2UgcGFyYW1ldGVyIDAgc2hvdWxkIGhh
dmUgdHlwZSAnc3RyaW5nJy4KLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENvbnNvbGVXYXJuU3Ry
aW5nCi1FdmFsdWF0aW5nIGV4cHJlc3Npb246IGNvbnNvbGUud2Fybigid2FybiIpOwotUEFTUzog
Q29uc29sZU1lc3NhZ2UgdHlwZSBzaG91bGQgYmUgJ2NvbnNvbGUtYXBpJy4KLVBBU1M6IENvbnNv
bGVNZXNzYWdlIGxldmVsIHNob3VsZCBiZSAnd2FybmluZycuCi1QQVNTOiBDb25zb2xlTWVzc2Fn
ZSB0ZXh0IHNob3VsZCBiZSAnd2FybicuCi1QQVNTOiBDb25zb2xlTWVzc2FnZSBwYXJhbWV0ZXJz
Lmxlbmd0aCA9PT0gMQotUEFTUzogQ29uc29sZU1lc3NhZ2UgcGFyYW1ldGVyIDAgc2hvdWxkIGhh
dmUgdHlwZSAnc3RyaW5nJy4KLQotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENvbnNvbGVFcnJvclN0
cmluZwotRXZhbHVhdGluZyBleHByZXNzaW9uOiBjb25zb2xlLmVycm9yKCJlcnJvciIpOwotUEFT
UzogQ29uc29sZU1lc3NhZ2UgdHlwZSBzaG91bGQgYmUgJ2NvbnNvbGUtYXBpJy4KLVBBU1M6IENv
bnNvbGVNZXNzYWdlIGxldmVsIHNob3VsZCBiZSAnZXJyb3InLgotUEFTUzogQ29uc29sZU1lc3Nh
Z2UgdGV4dCBzaG91bGQgYmUgJ2Vycm9yJy4KLVBBU1M6IENvbnNvbGVNZXNzYWdlIHBhcmFtZXRl
cnMubGVuZ3RoID09PSAxCi1QQVNTOiBDb25zb2xlTWVzc2FnZSBwYXJhbWV0ZXIgMCBzaG91bGQg
aGF2ZSB0eXBlICdzdHJpbmcnLgotCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogQ29uc29sZURlYnVn
U3RyaW5nCi1FdmFsdWF0aW5nIGV4cHJlc3Npb246IGNvbnNvbGUuZGVidWcoImRlYnVnIik7Ci1Q
QVNTOiBDb25zb2xlTWVzc2FnZSB0eXBlIHNob3VsZCBiZSAnY29uc29sZS1hcGknLgotUEFTUzog
Q29uc29sZU1lc3NhZ2UgbGV2ZWwgc2hvdWxkIGJlICdkZWJ1ZycuCi1QQVNTOiBDb25zb2xlTWVz
c2FnZSB0ZXh0IHNob3VsZCBiZSAnZGVidWcnLgotUEFTUzogQ29uc29sZU1lc3NhZ2UgcGFyYW1l
dGVycy5sZW5ndGggPT09IDEKLVBBU1M6IENvbnNvbGVNZXNzYWdlIHBhcmFtZXRlciAwIHNob3Vs
ZCBoYXZlIHR5cGUgJ3N0cmluZycuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9jb25zb2xlL2NvbnNvbGUtbWVzc2FnZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2NvbnNvbGUvY29uc29sZS1tZXNzYWdlLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDU4MDVlNTM0MWY0OGI4OTc5MmE1ZDU0MjU3YzhkMWI2M2IwM2Ri
ZjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2NvbnNvbGUvY29uc29sZS1tZXNzYWdlLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwxMDIgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBnZW5l
cmF0ZVNpbXBsZUNvbnNvbGVNZXNzYWdlcygpCi17Ci0gICAgY29uc29sZS5sb2coImxvZyIpOwot
ICAgIGNvbnNvbGUuaW5mbygiaW5mbyIpOwotICAgIGNvbnNvbGUud2Fybigid2FybiIpOwotICAg
IGNvbnNvbGUuZXJyb3IoImVycm9yIik7Ci0gICAgY29uc29sZS5kZWJ1ZygiZGVidWciKTsKLX0K
LQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5pbXBvcnRTY3JpcHQoIi4u
Ly4uLy4uLy4uL2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvY29uc29sZS10ZXN0LmpzIik7
Ci0KLSAgICB2YXIgc3VpdGUgPSBuZXcgSW5zcGVjdG9yVGVzdC5Bc3luY1Rlc3RTdWl0ZSgiQ29u
c29sZS5NZXNzYWdlc0Zyb21Db21tYW5kTGluZUFQSSIpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5D
b25zb2xlLmFkZFRlc3RDYXNlKHN1aXRlLCB7Ci0gICAgICAgIG5hbWU6ICJDb25zb2xlTG9nU3Ry
aW5nIiwKLSAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0IGBjb25zb2xlLmxvZyhcImxvZ1wiKWAi
LAotICAgICAgICBleHByZXNzaW9uOiAnY29uc29sZS5sb2coImxvZyIpOycsCi0gICAgICAgIGV4
cGVjdGVkOiB7Ci0gICAgICAgICAgICBzb3VyY2U6ICdjb25zb2xlLWFwaScsCi0gICAgICAgICAg
ICBsZXZlbDogJ2xvZycsCi0gICAgICAgICAgICB0ZXh0OiAnbG9nJywKLSAgICAgICAgICAgIHBh
cmFtZXRlcnM6IFsnc3RyaW5nJ10KLSAgICAgICAgfQotICAgIH0pOwotCi0gICAgSW5zcGVjdG9y
VGVzdC5Db25zb2xlLmFkZFRlc3RDYXNlKHN1aXRlLCB7Ci0gICAgICAgIG5hbWU6ICJDb25zb2xl
SW5mb1N0cmluZyIsCi0gICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdCBgY29uc29sZS5pbmZvKFwi
aW5mb1wiKWAiLAotICAgICAgICBleHByZXNzaW9uOiAnY29uc29sZS5pbmZvKCJpbmZvIik7JywK
LSAgICAgICAgZXhwZWN0ZWQ6IHsKLSAgICAgICAgICAgIHNvdXJjZTogJ2NvbnNvbGUtYXBpJywK
LSAgICAgICAgICAgIGxldmVsOiAnaW5mbycsCi0gICAgICAgICAgICB0ZXh0OiAnaW5mbycsCi0g
ICAgICAgICAgICBwYXJhbWV0ZXJzOiBbJ3N0cmluZyddCi0gICAgICAgIH0KLSAgICB9KTsKLQot
ICAgIEluc3BlY3RvclRlc3QuQ29uc29sZS5hZGRUZXN0Q2FzZShzdWl0ZSwgewotICAgICAgICBu
YW1lOiAiQ29uc29sZVdhcm5TdHJpbmciLAotICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3QgYGNv
bnNvbGUud2FybihcIndhcm5cIilgIiwKLSAgICAgICAgZXhwcmVzc2lvbjogJ2NvbnNvbGUud2Fy
bigid2FybiIpOycsCi0gICAgICAgIGV4cGVjdGVkOiB7Ci0gICAgICAgICAgICBzb3VyY2U6ICdj
b25zb2xlLWFwaScsCi0gICAgICAgICAgICBsZXZlbDogJ3dhcm5pbmcnLAotICAgICAgICAgICAg
dGV4dDogJ3dhcm4nLAotICAgICAgICAgICAgcGFyYW1ldGVyczogWydzdHJpbmcnXQotICAgICAg
ICB9Ci0gICAgfSk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LkNvbnNvbGUuYWRkVGVzdENhc2Uoc3Vp
dGUsIHsKLSAgICAgICAgbmFtZTogIkNvbnNvbGVFcnJvclN0cmluZyIsCi0gICAgICAgIGRlc2Ny
aXB0aW9uOiAiVGVzdCBgY29uc29sZS5lcnJvcihcImVycm9yXCIpYCIsCi0gICAgICAgIGV4cHJl
c3Npb246ICdjb25zb2xlLmVycm9yKCJlcnJvciIpOycsCi0gICAgICAgIGV4cGVjdGVkOiB7Ci0g
ICAgICAgICAgICBzb3VyY2U6ICdjb25zb2xlLWFwaScsCi0gICAgICAgICAgICBsZXZlbDogJ2Vy
cm9yJywKLSAgICAgICAgICAgIHRleHQ6ICdlcnJvcicsCi0gICAgICAgICAgICBwYXJhbWV0ZXJz
OiBbJ3N0cmluZyddCi0gICAgICAgIH0KLSAgICB9KTsKLQotICAgIEluc3BlY3RvclRlc3QuQ29u
c29sZS5hZGRUZXN0Q2FzZShzdWl0ZSwgewotICAgICAgICBuYW1lOiAiQ29uc29sZURlYnVnU3Ry
aW5nIiwKLSAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0IGBjb25zb2xlLmRlYnVnKFwiZGVidWdc
IilgIiwKLSAgICAgICAgZXhwcmVzc2lvbjogJ2NvbnNvbGUuZGVidWcoImRlYnVnIik7JywKLSAg
ICAgICAgZXhwZWN0ZWQ6IHsKLSAgICAgICAgICAgIHNvdXJjZTogJ2NvbnNvbGUtYXBpJywKLSAg
ICAgICAgICAgIGxldmVsOiAnZGVidWcnLAotICAgICAgICAgICAgdGV4dDogJ2RlYnVnJywKLSAg
ICAgICAgICAgIHBhcmFtZXRlcnM6IFsnc3RyaW5nJ10KLSAgICAgICAgfQotICAgIH0pOwotCi0g
ICAgSW5zcGVjdG9yVGVzdC5hd2FpdENvbW1hbmQoewotICAgICAgICBtZXRob2Q6ICJDb25zb2xl
LmVuYWJsZSIsCi0gICAgICAgIHBhcmFtczoge30KLSAgICB9KQotICAgIC50aGVuKGZ1bmN0aW9u
KCkgewotICAgICAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKLSAgICB9KQotICAg
IC5jYXRjaChmYXRhbEVycm9yKTsKLQotICAgIGZ1bmN0aW9uIGZhdGFsRXJyb3IoZSkgewotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiVGVzdCBmYWlsZWQgd2l0aCBmYXRhbCBlcnJvcjogIiAr
IEpTT04uc3RyaW5naWZ5KGUpKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KLTxwPgotVGVzdHMgdGhhdCA8Y29kZT5jb25zb2xlLmxvZzwvY29kZT4gYW5kIHJlbGF0ZWQg
QVBJcyBjYXVzZSA8Y29kZT5Db25zb2xlLm1lc3NhZ2VBZGRlZDwvY29kZT4gZXZlbnRzIHRvIGJl
IGdlbmVyYXRlZCB3aXRoIGNvcnJlY3Qgc291cmNlLCB0eXBlLCBsZXZlbCwgYW5kIHBhcmFtZXRl
ciB0eXBlcy4KLTxicj4KLTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9jb25zb2xlL2Nzcy1zb3VyY2UtbG9jYXRpb25zLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9jb25zb2xlL2Nzcy1z
b3VyY2UtbG9jYXRpb25zLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYTMwZGJkMzYzNmE1MDFkMzIzZWIwMzVjNzIwY2I5M2Y4YmE4YTdiOC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvY29uc29sZS9jc3Mtc291cmNlLWxvY2F0aW9ucy1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLVRlc3RzIHRoYXQgQ1NTIHBhcnNlciB3YXJuaW5ncyBm
cm9tIGlubGluZSBzdHlsZSB0YWdzIGFuZCBleHRlcm5hbCBzdHlsZXNoZWV0cyBhcmUgc2VudCB0
byB0aGUgY29uc29sZSB3aXRoIGNvcnJlY3QgbGluZSBhbmQgY29sdW1uIGluZm9ybWF0aW9uLgot
eyJzb3VyY2UiOiJjc3MiLCJsZXZlbCI6Indhcm5pbmciLCJ0ZXh0IjoiSW52YWxpZCBDU1MgcHJv
cGVydHkgZGVjbGFyYXRpb24gYXQ6ICoiLCJsb2NhdGlvbiI6ImNzcy1zb3VyY2UtbG9jYXRpb25z
Lmh0bWw6NToyMCJ9Ci17InNvdXJjZSI6ImNzcyIsImxldmVsIjoid2FybmluZyIsInRleHQiOiJJ
bnZhbGlkIENTUyBwcm9wZXJ0eSBkZWNsYXJhdGlvbiBhdDogKiIsImxvY2F0aW9uIjoiY3NzLXNv
dXJjZS1sb2NhdGlvbnMuaHRtbDo2OjE0In0KLXsic291cmNlIjoiY3NzIiwibGV2ZWwiOiJ3YXJu
aW5nIiwidGV4dCI6IkludmFsaWQgQ1NTIHByb3BlcnR5IGRlY2xhcmF0aW9uIGF0OiAqIiwibG9j
YXRpb24iOiJjc3Mtc291cmNlLWxvY2F0aW9ucy5odG1sOjc6NyJ9Ci17InNvdXJjZSI6ImNzcyIs
ImxldmVsIjoid2FybmluZyIsInRleHQiOiJJbnZhbGlkIENTUyBwcm9wZXJ0eSBkZWNsYXJhdGlv
biBhdDogKiIsImxvY2F0aW9uIjoiY3NzLXNvdXJjZS1sb2NhdGlvbnMuaHRtbDo5OjgifQoteyJz
b3VyY2UiOiJjc3MiLCJsZXZlbCI6Indhcm5pbmciLCJ0ZXh0IjoiSW52YWxpZCBDU1MgcHJvcGVy
dHkgZGVjbGFyYXRpb24gYXQ6ICoiLCJsb2NhdGlvbiI6ImVycm9ycy5jc3M6MTo3In0KLXsic291
cmNlIjoiY3NzIiwibGV2ZWwiOiJ3YXJuaW5nIiwidGV4dCI6IkludmFsaWQgQ1NTIHByb3BlcnR5
IGRlY2xhcmF0aW9uIGF0OiAqIiwibG9jYXRpb24iOiJlcnJvcnMuY3NzOjE6MjkifQoteyJzb3Vy
Y2UiOiJjc3MiLCJsZXZlbCI6Indhcm5pbmciLCJ0ZXh0IjoiSW52YWxpZCBDU1MgcHJvcGVydHkg
ZGVjbGFyYXRpb24gYXQ6ICoiLCJsb2NhdGlvbiI6ImVycm9ycy5jc3M6NDo1In0KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2NvbnNvbGUvY3NzLXNvdXJjZS1s
b2NhdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9jb25zb2xlL2Nz
cy1zb3VyY2UtbG9jYXRpb25zLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFh
MzllZGI3N2ViMDUyYzU4NWNhZTU0NzYwNWUwZThlZTM3YTc0YzUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2NvbnNvbGUvY3NzLXNvdXJjZS1sb2NhdGlvbnMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDU2ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL3Jlc291cmNl
cy9lcnJvcnMuY3NzIj4KLSAgPHN0eWxlPiAgICBkaXYgeyAqIGNvbG9yOiByZWQ7IH08L3N0eWxl
PgotPHN0eWxlPmRpdiB7ICogY29sb3I6IHJlZDsgfQotZGl2IHsgKiBjb2xvcjogcmVkOyB9Ci0g
ICBkaXYgewotICAgICAgICoKLSAgICAgICBjb2xvcjoKLSAgICAgICByZWQ7Ci0gICB9Ci08L3N0
eWxlPgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3QuaW1w
b3J0U2NyaXB0KCIuLi8uLi8uLi8uLi9pbnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL2NvbnNv
bGUtdGVzdC5qcyIpOwotCi0gICAgdmFyIGNvbnNvbGVNZXNzYWdlQ291bnQgPSAwOwotICAgIGNv
bnN0IGV4cGVjdGVkQ29uc29sZU1lc3NhZ2VDb3VudCA9IDc7Ci0KLSAgICAvLyBEdWUgdG8gdGhl
IGRpZmZpY3VsdHkgb2YgdGVzdGluZyBpbmxpbmUgc3R5bGUgdGFncyBpbiBhIHRlc3QgY2FzZSwg
dGhpcyB0ZXN0Ci0gICAgLy8gaXMgYSByZWZlcmVuY2UgdGVzdCB0aGF0IGNvbnRhaW5zIHNlcmlh
bGl6ZWQgQ29uc29sZS5tZXNzYWdlQWRkZWQgZXZlbnQgZGF0YS4KLSAgICBJbnNwZWN0b3JUZXN0
LmFkZEV2ZW50TGlzdGVuZXIoewotICAgICAgICBldmVudDogIkNvbnNvbGUubWVzc2FnZUFkZGVk
IiwKLSAgICAgICAgbGlzdGVuZXI6IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKLSAgICAgICAg
ICAgIHZhciBtZXNzYWdlID0gSW5zcGVjdG9yVGVzdC5Db25zb2xlLnNhbml0aXplQ29uc29sZU1l
c3NhZ2UobWVzc2FnZU9iamVjdCk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhKU09O
LnN0cmluZ2lmeShtZXNzYWdlKSk7Ci0KLSAgICAgICAgICAgIGlmICgrK2NvbnNvbGVNZXNzYWdl
Q291bnQgIT09IGV4cGVjdGVkQ29uc29sZU1lc3NhZ2VDb3VudCkKLSAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRDb21tYW5kKHsKLSAgICAg
ICAgICAgICAgICBtZXRob2Q6ICJDb25zb2xlLmRpc2FibGUiLAotICAgICAgICAgICAgICAgIHBh
cmFtczoge30KLSAgICAgICAgICAgIH0pCi0gICAgICAgICAgICAudGhlbihmdW5jdGlvbigpIHsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAg
ICAgfSk7Ci0gICAgICAgIH0KLSAgICB9KTsKLQotICAgIC8vIFN0YXJ0IHRoZSB0ZXN0LgotICAg
IEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoewotICAgICAgICBtZXRob2Q6ICJDb25zb2xlLmVu
YWJsZSIsCi0gICAgICAgIHBhcmFtczoge30KLSAgICB9KTsKLX0KLTwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IENTUyBwYXJzZXIg
d2FybmluZ3MgZnJvbSBpbmxpbmUgc3R5bGUgdGFncyBhbmQgZXh0ZXJuYWwgc3R5bGVzaGVldHMg
YXJlIHNlbnQgdG8gdGhlIGNvbnNvbGUgd2l0aCBjb3JyZWN0IGxpbmUgYW5kIGNvbHVtbiBpbmZv
cm1hdGlvbi48YnI+Ci08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvY29uc29sZS9qcy1zb3VyY2UtbG9jYXRpb25zLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9jb25zb2xlL2pzLXNvdXJj
ZS1sb2NhdGlvbnMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAx
OWRmMWMyOGQzOTg5NGRkM2EzZTk5MzkwYWYxYmEwZTJmOGE3N2VhLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9jb25zb2xlL2pzLXNvdXJjZS1sb2NhdGlvbnMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTggKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IGVycm9yIHNjcmlw
dAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IHdhcm4gc2NyaXB0Ci1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgNTogZXJyb3Igc2NyaXB0Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjogd2FybiBzY3Jp
cHQKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1OiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3Qg
YW4gb2JqZWN0IChldmFsdWF0aW5nICdbXS54LngnKQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6
IHdhcm4gMQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IGVycm9yIDEKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSA4OiBlcnJvciAyCi1UZXN0cyB0aGF0IEphdmFTY3JpcHQgZXJyb3JzIGFuZCB3YXJu
aW5ncyBmcm9tIGlubGluZSBzY3JpcHQgdGFncyBhbmQgZXh0ZXJuYWwgZmlsZXMgYXJlIHNlbnQg
dG8gdGhlIGNvbnNvbGUgd2l0aCBjb3JyZWN0IGxpbmUgYW5kIGNvbHVtbiBpbmZvcm1hdGlvbi4K
LXsic291cmNlIjoiY29uc29sZS1hcGkiLCJsZXZlbCI6ImVycm9yIiwidGV4dCI6ImVycm9yIHNj
cmlwdCIsImxvY2F0aW9uIjoiZXJyb3JzLmpzOjE6MTQiLCJwYXJhbWV0ZXJzIjpbeyJ0eXBlIjoi
c3RyaW5nIn1dfQoteyJzb3VyY2UiOiJjb25zb2xlLWFwaSIsImxldmVsIjoid2FybmluZyIsInRl
eHQiOiJ3YXJuIHNjcmlwdCIsImxvY2F0aW9uIjoiZXJyb3JzLmpzOjE6NDQiLCJwYXJhbWV0ZXJz
IjpbeyJ0eXBlIjoic3RyaW5nIn1dfQoteyJzb3VyY2UiOiJjb25zb2xlLWFwaSIsImxldmVsIjoi
ZXJyb3IiLCJ0ZXh0IjoiZXJyb3Igc2NyaXB0IiwibG9jYXRpb24iOiJlcnJvcnMuanM6NToxOCIs
InBhcmFtZXRlcnMiOlt7InR5cGUiOiJzdHJpbmcifV19Ci17InNvdXJjZSI6ImNvbnNvbGUtYXBp
IiwibGV2ZWwiOiJ3YXJuaW5nIiwidGV4dCI6Indhcm4gc2NyaXB0IiwibG9jYXRpb24iOiJlcnJv
cnMuanM6NjoxNyIsInBhcmFtZXRlcnMiOlt7InR5cGUiOiJzdHJpbmcifV19Ci17InNvdXJjZSI6
ImphdmFzY3JpcHQiLCJsZXZlbCI6ImVycm9yIiwidGV4dCI6IlR5cGVFcnJvcjogdW5kZWZpbmVk
IGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ1tdLngueCcpIiwibG9jYXRpb24iOiJqcy1z
b3VyY2UtbG9jYXRpb25zLmh0bWw6NToxOCJ9Ci17InNvdXJjZSI6ImNvbnNvbGUtYXBpIiwibGV2
ZWwiOiJ3YXJuaW5nIiwidGV4dCI6Indhcm4gMSIsImxvY2F0aW9uIjoianMtc291cmNlLWxvY2F0
aW9ucy5odG1sOjc6MTMiLCJwYXJhbWV0ZXJzIjpbeyJ0eXBlIjoic3RyaW5nIn1dfQoteyJzb3Vy
Y2UiOiJjb25zb2xlLWFwaSIsImxldmVsIjoiZXJyb3IiLCJ0ZXh0IjoiZXJyb3IgMSIsImxvY2F0
aW9uIjoianMtc291cmNlLWxvY2F0aW9ucy5odG1sOjc6MzgiLCJwYXJhbWV0ZXJzIjpbeyJ0eXBl
Ijoic3RyaW5nIn1dfQoteyJzb3VyY2UiOiJjb25zb2xlLWFwaSIsImxldmVsIjoiZXJyb3IiLCJ0
ZXh0IjoiZXJyb3IgMiIsImxvY2F0aW9uIjoianMtc291cmNlLWxvY2F0aW9ucy5odG1sOjg6MTci
LCJwYXJhbWV0ZXJzIjpbeyJ0eXBlIjoic3RyaW5nIn1dfQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvY29uc29sZS9qcy1zb3VyY2UtbG9jYXRpb25zLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvY29uc29sZS9qcy1zb3VyY2UtbG9jYXRp
b25zLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5ZDlkZWIwOWUyODk4N2Fi
MmFjZTg3Mzc5NDI5Y2UzZjViMTcyOTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2NvbnNvbGUvanMt
c291cmNlLWxvY2F0aW9ucy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAotPGh0
bWw+Ci08aGVhZD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvZXJyb3JzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIGNoYXJzZXQ9InV0Zi04Ij48L3NjcmlwdD4KLSAgPHNjcmlwdD4gICBbXS54LnggICA8L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci1jb25zb2xlLndhcm4oIndhcm4gMSIpOyBjb25zb2xlLmVycm9yKCJl
cnJvciAxIik7Ci0gICBjb25zb2xlLmVycm9yKCJlcnJvciAyIik7Ci08L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmltcG9ydFNjcmlwdCgi
Li4vLi4vLi4vLi4vaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9jb25zb2xlLXRlc3QuanMi
KTsKLQotICAgIHZhciBjb25zb2xlTWVzc2FnZUNvdW50ID0gMDsKLSAgICBjb25zdCBleHBlY3Rl
ZENvbnNvbGVNZXNzYWdlQ291bnQgPSA4OwotCi0gICAgLy8gRHVlIHRvIHRoZSBkaWZmaWN1bHR5
IG9mIHRlc3RpbmcgaW5saW5lIHNjcmlwdCB0YWdzIGluIGEgdGVzdCBjYXNlLCB0aGlzIHRlc3QK
LSAgICAvLyBpcyBhIHJlZmVyZW5jZSB0ZXN0IHRoYXQgY29udGFpbnMgc2VyaWFsaXplZCBDb25z
b2xlLm1lc3NhZ2VBZGRlZCBldmVudCBkYXRhLgotICAgIEluc3BlY3RvclRlc3QuYWRkRXZlbnRM
aXN0ZW5lcih7Ci0gICAgICAgIGV2ZW50OiAiQ29uc29sZS5tZXNzYWdlQWRkZWQiLAotICAgICAg
ICBsaXN0ZW5lcjogZnVuY3Rpb24obWVzc2FnZU9iamVjdCkgewotICAgICAgICAgICAgdmFyIG1l
c3NhZ2UgPSBJbnNwZWN0b3JUZXN0LkNvbnNvbGUuc2FuaXRpemVDb25zb2xlTWVzc2FnZShtZXNz
YWdlT2JqZWN0KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKEpTT04uc3RyaW5naWZ5
KG1lc3NhZ2UpKTsKLQotICAgICAgICAgICAgaWYgKCsrY29uc29sZU1lc3NhZ2VDb3VudCA9PT0g
ZXhwZWN0ZWRDb25zb2xlTWVzc2FnZUNvdW50KQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgIH0KLSAgICB9KTsKLQotICAgIEluc3BlY3RvclRl
c3Quc2VuZENvbW1hbmQoewotICAgICAgICBtZXRob2Q6ICJDb25zb2xlLmVuYWJsZSIsCi0gICAg
ICAgIHBhcmFtczoge30KLSAgICB9KTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgotPHA+Ci1UZXN0cyB0aGF0IEphdmFTY3JpcHQgZXJyb3JzIGFuZCB3
YXJuaW5ncyBmcm9tIGlubGluZSBzY3JpcHQgdGFncyBhbmQgZXh0ZXJuYWwgZmlsZXMgYXJlIHNl
bnQgdG8gdGhlIGNvbnNvbGUgd2l0aCBjb3JyZWN0IGxpbmUgYW5kIGNvbHVtbiBpbmZvcm1hdGlv
bi48YnI+Ci08L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvY29uc29sZS94LWZyYW1lLW9wdGlvbnMtbWVzc2FnZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvY29uc29sZS94LWZyYW1lLW9w
dGlvbnMtbWVzc2FnZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDg3NjliY2QwZGU0ZjYyODI2NzlkMmEyZDhlMGVlYjFlMjcwOGVjOGIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2NvbnNvbGUveC1mcmFtZS1vcHRpb25zLW1lc3NhZ2UtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDE6IFJlZnVz
ZWQgdG8gZGlzcGxheSAneC1mcmFtZS1vcHRpb25zLW1lc3NhZ2UuaHRtbCcgaW4gYSBmcmFtZSBi
ZWNhdXNlIGl0IHNldCAnWC1GcmFtZS1PcHRpb25zJyB0byAnZGVueScuCi0KLQotPT0gUnVubmlu
ZyB0ZXN0IHN1aXRlOiBDb25zb2xlLlhGcmFtZU9wdGlvbnNNZXNzYWdlcwotLS0gUnVubmluZyB0
ZXN0IGNhc2U6IFhGcmFtZU9wdGlvbnNEZW55Ci1FdmFsdWF0aW5nIGV4cHJlc3Npb246IHRyaWdn
ZXJYRnJhbWVPcHRpb25EZW55KCk7Ci1QQVNTOiBDb25zb2xlTWVzc2FnZSB0eXBlIHNob3VsZCBi
ZSAnc2VjdXJpdHknLgotUEFTUzogQ29uc29sZU1lc3NhZ2UgbGV2ZWwgc2hvdWxkIGJlICdlcnJv
cicuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9jb25zb2xl
L3gtZnJhbWUtb3B0aW9ucy1tZXNzYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvY29uc29sZS94LWZyYW1lLW9wdGlvbnMtbWVzc2FnZS5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBkOTI3NmFiNDQzODhkMjM5Nzk2M2E5MzExOGRkMWQxYjZmYTY5MmU0
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9jb25zb2xlL3gtZnJhbWUtb3B0aW9ucy1tZXNzYWdlLmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9u
IHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3QuaW1wb3J0U2NyaXB0KCIuLi8uLi8uLi8uLi9p
bnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL2NvbnNvbGUtdGVzdC5qcyIpOwotCi0gICAgbGV0
IHN1aXRlID0gbmV3IEluc3BlY3RvclRlc3QuQXN5bmNUZXN0U3VpdGUoIkNvbnNvbGUuWEZyYW1l
T3B0aW9uc01lc3NhZ2VzIik7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LkNvbnNvbGUuYWRkVGVzdENh
c2Uoc3VpdGUsIHsKLSAgICAgICAgbmFtZTogIlhGcmFtZU9wdGlvbnNEZW55IiwKLSAgICAgICAg
ZGVzY3JpcHRpb246ICJFbnN1cmUgdGhhdCBhIGNvbnNvbGUgbWVzc2FnZSBpcyBsb2dnZWQgd2hl
biBlbmZvcmNpbmcgYW4gWC1GcmFtZS1PcHRpb25zIHBvbGljeS4gSW4gdGhpcyBjYXNlLCBzZXR0
aW5nIFgtRnJhbWUtT3B0aW9uczogJ2RlbnknIG1lYW5zIHRoZSBpZnJhbWUgZG9lcyBub3Qgd2Fu
dCB0byBiZSBlbWJlZGRlZCBpbiB0aGUgdGVzdCBwYWdlLiIsCi0gICAgICAgIGV4cHJlc3Npb246
ICJ0cmlnZ2VyWEZyYW1lT3B0aW9uRGVueSgpOyIsCi0gICAgICAgIGV4cGVjdGVkOiB7c291cmNl
OiAnc2VjdXJpdHknLCBsZXZlbDogJ2Vycm9yJ30KLSAgICB9KTsKLQotICAgIEluc3BlY3RvclRl
c3QuYXdhaXRDb21tYW5kKHsKLSAgICAgICAgbWV0aG9kOiAiQ29uc29sZS5lbmFibGUiLAotICAg
ICAgICBwYXJhbXM6IHt9Ci0gICAgfSkKLSAgICAudGhlbihmdW5jdGlvbigpIHsKLSAgICAgICAg
c3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Ci0gICAgfSkKLSAgICAuY2F0Y2goZmF0YWxF
cnJvcik7Ci0KLSAgICBmdW5jdGlvbiBmYXRhbEVycm9yKGUpIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIlRlc3QgZmFpbGVkIHdpdGggZmF0YWwgZXJyb3I6ICIgKyBKU09OLnN0cmluZ2lm
eShlKSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0gIDxpZnJhbWUg
aWQ9ImRlbmllZCI+PC9pZnJhbWU+Ci0gIDxzY3JpcHQ+Ci0gIGZ1bmN0aW9uIHRyaWdnZXJYRnJh
bWVPcHRpb25EZW55KCkKLSAgewotICAgIGxldCBkZW5pZWRGcmFtZSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdkZW5pZWQnKTsKLSAgICBsZXQgZGVuaWVkRG9jdW1lbnQgPSBkZW5pZWRGcmFt
ZS5jb250ZW50V2luZG93LmRvY3VtZW50OwotICAgIGRlbmllZERvY3VtZW50LndyaXRlKCc8bWV0
YSBodHRwLWVxdWl2PSJYLUZyYW1lLU9wdGlvbnMiIGNvbnRlbnQ9ImRlbnkiLz4nKTsKLSAgfQot
ICA8L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9jc3MvZ2V0U3VwcG9ydGVkQ1NTUHJvcGVydGllcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvY3NzL2dldFN1cHBvcnRlZENTU1By
b3BlcnRpZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZjBi
MmNjOTY3OGIwN2Q0NzVmZTZjNzU1ODU5M2I1ZmFhNjlhMDJhLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9jc3MvZ2V0U3VwcG9ydGVkQ1NTUHJvcGVydGllcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwyICswLDAgQEAKLWJveC1zaGFkb3cgaXMgc3VwcG9ydGVkCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9jc3MvZ2V0U3VwcG9ydGVkQ1NTUHJvcGVy
dGllcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Nzcy9nZXRTdXBwb3J0
ZWRDU1NQcm9wZXJ0aWVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZhYWVj
ZjlkYzM2YzE3MDcwZWI0MzliNmFlOWI5MmE0NmU4MGY3OGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2Nzcy9nZXRTdXBwb3J0ZWRDU1NQcm9wZXJ0aWVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwz
MiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3Rv
clRlc3Quc2VuZENvbW1hbmQoIkNTUy5nZXRTdXBwb3J0ZWRDU1NQcm9wZXJ0aWVzIiwge30sIGZ1
bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKLSAgICAgICAgaWYgKCJlcnJvciIgaW4gbWVzc2FnZU9i
amVjdCkKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKG1lc3NhZ2VPYmplY3QuZXJyb3Iu
bWVzc2FnZSk7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgdmFyIGNzc1Byb3BlcnR5ID0g
ImJveC1zaGFkb3ciOwotICAgICAgICAgICAgdmFyIGVudHJpZXMgPSBtZXNzYWdlT2JqZWN0WyJy
ZXN1bHQiXVsiY3NzUHJvcGVydGllcyJdOwotCi0gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGVudHJpZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICBpZiAoZW50cmllc1tp
XS5uYW1lID09PSBjc3NQcm9wZXJ0eSkgewotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZyhlbnRyaWVzW2ldLm5hbWUgKyAiIGlzIHN1cHBvcnRlZCIpOwotICAgICAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIGlmIChpID09PSBlbnRyaWVzLmxlbmd0aCkKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZyhjc3NQcm9wZXJ0eSArICIgaXMgTk9UIHN1cHBvcnRlZCIpOwotICAgICAgICB9
Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9KTsKLX0KLTwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25Mb2FkPSJydW5UZXN0KCkiPgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L2JyZWFrcG9pbnQtYWN0aW9uLWRldGFjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZGV0YWNoLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTczMWIyNzk2NjI4MjQ5MTcwZDIz
MDAyYmQ5NTAwY2Y1MjQ0MTcxOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtw
b2ludC1hY3Rpb24tZGV0YWNoLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDcgKzAs
MCBAQAotQ2xvc2luZyB0aGUgaW5zcGVjdG9yIHdoaWxlIGV4ZWN1dGluZyB0aGUgY29kZSBmb3Ig
YSBicmVha3BvaW50IGFjdGlvbiBzaG91bGQgY29udGludWUgZXhlY3V0aW5nIGNvZGUuCi0KLUZv
dW5kIGJyZWFrcG9pbnQuanMKLWluc2lkZSBicmVha3BvaW50V2l0aENvbmRpdGlvbiBhOigxKSBi
OigyKSBhK2I6KDMpCi1DbG9zaW5nIHRoZSBpbnNwZWN0b3IuCi1QQVNTOiBUZXN0IGRpZCBub3Qg
Y3Jhc2ggYWZ0ZXIgZGVidWdnZXIgZGlzY29ubmVjdGVkLgotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZGV0YWNo
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2lu
dC1hY3Rpb24tZGV0YWNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhmMGYw
OTE2ZGEzMTM5NGQ1MDQ5ZjA0YTYxOTk4ZTRmZTVmZDk2MzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWRldGFjaC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNTkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2JyZWFrcG9pbnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1
bmN0aW9uIHJ1bkJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uKCkKLXsKLSAgICAvLyBUaGUgZGVidWdn
ZXIgc2hvdWxkIGhpdCBhIGJyZWFrcG9pbnQgaW5zaWRlIHRoZSBicmVha3BvaW50V2l0aENvbmRp
dGlvbiBjYWxsLgotICAgIGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uKDEsIDIpOwotICAgIC8vIElm
IHdlIGdldCBoZXJlIGl0IG1lYW5zIHRoYXQgdGhlIGRlYnVnZ2VyIHdhcyBkaXNjb25uZWN0ZWQg
YW5kIHRoZSBleGVjdXRpb24gY29udGludWVkIGFzIHVzdWFsLgotICAgIGxvZygiUEFTUzogVGVz
dCBkaWQgbm90IGNyYXNoIGFmdGVyIGRlYnVnZ2VyIGRpc2Nvbm5lY3RlZC4iKTsKLSAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKLX0KLQotLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkg
dGhlIGJyZWFrcG9pbnQgYWN0aW9uLgotZnVuY3Rpb24gZGlzY29ubmVjdCgpCi17Ci0gICAgbG9n
KCJDbG9zaW5nIHRoZSBpbnNwZWN0b3IuIik7Ci0gICAgd2luZG93LmludGVybmFscy5jbG9zZUR1
bW15SW5zcGVjdG9yRnJvbnRlbmQoKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5z
cGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCJdID0gZnVuY3Rp
b24obWVzc2FnZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIGlmICgvcmVzb3VyY2VzXC9icmVha3Bv
aW50XC5qcyQvLnRlc3QobWVzc2FnZU9iamVjdC5wYXJhbXMudXJsKSkgewotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coIkZvdW5kIGJyZWFrcG9pbnQuanMiKTsKLSAgICAgICAgICAgIHZh
ciBicmVha3BvaW50ID0gewotICAgICAgICAgICAgICAgIGxvY2F0aW9uOiB7Ci0gICAgICAgICAg
ICAgICAgICAgIHNjcmlwdElkOiBtZXNzYWdlT2JqZWN0LnBhcmFtcy5zY3JpcHRJZCwKLSAgICAg
ICAgICAgICAgICAgICAgbGluZU51bWJlcjogOCwKLSAgICAgICAgICAgICAgICAgICAgY29sdW1u
TnVtYmVyOiAwCi0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICBvcHRpb25zOiB7
Ci0gICAgICAgICAgICAgICAgICAgIGFjdGlvbnM6IFsKLSAgICAgICAgICAgICAgICAgICAgICAg
IHt0eXBlOiAiZXZhbHVhdGUiLCBkYXRhOiAiZGlzY29ubmVjdCgpIn0sCi0gICAgICAgICAgICAg
ICAgICAgICAgICB7dHlwZTogImV2YWx1YXRlIiwgZGF0YTogImxvZygnRkFJTDogVGhpcyBhY3Rp
b24gc2hvdWxkIG5vdCBiZSBleGVjdXRlZC4nKSJ9Ci0gICAgICAgICAgICAgICAgICAgIF0KLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9OwotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludCIsIGJyZWFrcG9pbnQsIEluc3Bl
Y3RvclRlc3QuY2hlY2tGb3JFcnJvcik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRD
b21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJydW5CcmVha3BvaW50V2l0
aENvbmRpdGlvbigpIn0pOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5l
dmVudEhhbmRsZXJbIkRlYnVnZ2VyLnBhdXNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkK
LSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiBQYXVzZWQgaW4gZGVidWdn
ZXI6IHJlYXNvbiA9IFwiIiArIG1lc3NhZ2VPYmplY3QucGFyYW1zLnJlYXNvbiArICJcIiIpOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLQotICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLX0KLTwvc2NyaXB0
PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+Q2xvc2luZyB0aGUgaW5z
cGVjdG9yIHdoaWxlIGV4ZWN1dGluZyB0aGUgY29kZSBmb3IgYSBicmVha3BvaW50IGFjdGlvbiBz
aG91bGQgY29udGludWUgZXhlY3V0aW5nIGNvZGUuPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9p
bnQtYWN0aW9uLXdpdGgtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi13aXRoLWV4Y2VwdGlvbi1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkNDEwZjkwOWJlOGQ5
OGYzM2E4NDZhNTkyM2VhNWNiNGRhZjQ5MDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L2JyZWFrcG9pbnQtYWN0aW9uLXdpdGgtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDcgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFR5cGVFcnJvcjog
dW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3RoaXMud2lsbC5jYXVzZScp
Ci1UaGUgZGVidWdnZXIgc2hvdWxkIG5vdCBwYXVzZSBvbiBleGNlcHRpb25zIHRocm93biB3aGls
ZSBleGVjdXRpbmcgdGhlIGJyZWFrcG9pbnQgYWN0aW9ucy4KLQotRm91bmQgYnJlYWtwb2ludC5q
cwotaW5zaWRlIGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uIGE6KDEpIGI6KDIpIGErYjooMykKLVBB
U1M6IEJyZWFrcG9pbnQgYWN0aW9uIGV4ZWN1dGVkLCBidXQgdGhlIGV4Y2VwdGlvbiBkaWQgbm90
IGNhdXNlIHRoZSBkZWJ1Z2dlciB0byBwYXVzZS4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLXdpdGgtZXhjZXB0
aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtw
b2ludC1hY3Rpb24td2l0aC1leGNlcHRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggODEwYjQxNjc2OGFlZjY3YjFmYWQ1NGRlNjBhMDU3YzcwNmQ3OWEzMS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24td2l0aC1leGNlcHRpb24uaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9icmVha3BvaW50LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmV2
ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2Jq
ZWN0KQotICAgIHsKLSAgICAgICAgaWYgKC9yZXNvdXJjZXNcL2JyZWFrcG9pbnRcLmpzJC8udGVz
dChtZXNzYWdlT2JqZWN0LnBhcmFtcy51cmwpKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZygiRm91bmQgYnJlYWtwb2ludC5qcyIpOwotCi0gICAgICAgICAgICB2YXIgYnJlYWtwb2lu
dCA9IHsKLSAgICAgICAgICAgICAgICBsb2NhdGlvbjogewotICAgICAgICAgICAgICAgICAgICBz
Y3JpcHRJZDogbWVzc2FnZU9iamVjdC5wYXJhbXMuc2NyaXB0SWQsCi0gICAgICAgICAgICAgICAg
ICAgIGxpbmVOdW1iZXI6IDgsCi0gICAgICAgICAgICAgICAgICAgIGNvbHVtbk51bWJlcjogMAot
ICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgb3B0aW9uczogewotICAgICAgICAg
ICAgICAgICAgICBhdXRvQ29udGludWU6IHRydWUsCi0gICAgICAgICAgICAgICAgICAgIGFjdGlv
bnM6IFsKLSAgICAgICAgICAgICAgICAgICAgICAgIHt0eXBlOiAiZXZhbHVhdGUiLCBkYXRhOiAi
dGhpcy53aWxsLmNhdXNlLmV4Y2VwdGlvbiJ9Ci0gICAgICAgICAgICAgICAgICAgIF0KLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICB9OwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludCIsIGJyZWFrcG9pbnQsIEluc3BlY3Rv
clRlc3QuY2hlY2tGb3JFcnJvcik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21t
YW5kKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIsIHtzdGF0ZTogImFsbCJ9LCBJbnNw
ZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAiYnJlYWtwb2ludFdpdGhD
b25kaXRpb24oMSwyKSJ9LCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKG1lc3NhZ2VPYmplY3QpOwotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiBCcmVha3BvaW50IGFjdGlvbiBleGVjdXRl
ZCwgYnV0IHRoZSBleGNlcHRpb24gZGlkIG5vdCBjYXVzZSB0aGUgZGVidWdnZXIgdG8gcGF1c2Uu
IikKLSAgICAgICAgICAgICAgICBjb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgICAgIH0pOwotICAg
ICAgICB9Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2Vy
LnBhdXNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJGQUlMOiBQYXVzZWQgaW4gZGVidWdnZXI6IHJlYXNvbiA9IFwiIiArIG1l
c3NhZ2VPYmplY3QucGFyYW1zLnJlYXNvbiArICJcIiIpOwotICAgICAgICBjb21wbGV0ZVRlc3Qo
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjb21wbGV0ZVRlc3QoKQotICAgIHsKLSAgICAgICAg
Ly8gUmVzZXQgdGhlIHBhdXNlT25FeGNlcHRpb24gc3RhdGUgYmVmb3JlIGVuZGluZyB0aGUgdGVz
dC4KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0UGF1c2VP
bkV4Y2VwdGlvbnMiLCB7c3RhdGU6ICJub25lIn0pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCgpOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRl
YnVnZ2VyLmVuYWJsZSIsIHt9KTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgotPHA+VGhlIGRlYnVnZ2VyIHNob3VsZCBub3QgcGF1c2Ugb24gZXhjZXB0
aW9ucyB0aHJvd24gd2hpbGUgZXhlY3V0aW5nIHRoZSBicmVha3BvaW50IGFjdGlvbnMuPC9wPgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLWRldGFjaC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRp
b24tZGV0YWNoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzg4
NmQ3MGZmYWY4N2U0ZTBkMGUyMjBjNzNlNTZlMjhjZjE4YjE5ZC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24tZGV0YWNoLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDcgKzAsMCBAQAotRGVidWdnZXIuc2V0QnJlYWtwb2ludCB3aXRoIGFu
IGFjdGlvbiB0aGF0IHRocm93cyBhbiBleGNlcHRpb24gc2hvdWxkIG5vdCBwYXVzZSB0aGUgZGVi
dWdnZXIuCi0KLUZvdW5kIGJyZWFrcG9pbnQuanMKLWluc2lkZSBicmVha3BvaW50V2l0aENvbmRp
dGlvbiBhOigxKSBiOigyKSBhK2I6KDMpCi1DbG9zaW5nIHRoZSBpbnNwZWN0b3IuCi1QQVNTOiBU
ZXN0IGRpZCBub3QgY3Jhc2ggYWZ0ZXIgZGVidWdnZXIgZGlzY29ubmVjdGVkLgotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1j
b25kaXRpb24tZGV0YWNoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVi
dWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24tZGV0YWNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDFhOTg0MDNhNTI2MDdhMTlhZDY4ZTRlN2ZkZmEyZjAyMTIxZWI0M2YuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLWRldGFjaC5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVz
dC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2JyZWFrcG9pbnQuanMiPjwv
c2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHJ1bkJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uKCkK
LXsKLSAgICAvLyBUaGUgZGVidWdnZXIgc2hvdWxkIGhpdCBhIGJyZWFrcG9pbnQgaW5zaWRlIHRo
ZSBicmVha3BvaW50V2l0aENvbmRpdGlvbiBjYWxsLgotICAgIGJyZWFrcG9pbnRXaXRoQ29uZGl0
aW9uKDEsIDIpOwotICAgIC8vIElmIHdlIGdldCBoZXJlIGl0IG1lYW5zIHRoYXQgdGhlIGRlYnVn
Z2VyIHdhcyBkaXNjb25uZWN0ZWQgYW5kIHRoZSBleGVjdXRpb24gY29udGludWVkIGFzIHVzdWFs
LgotICAgIGxvZygiUEFTUzogVGVzdCBkaWQgbm90IGNyYXNoIGFmdGVyIGRlYnVnZ2VyIGRpc2Nv
bm5lY3RlZC4iKTsKLSAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0KLQotLy8gVGhpcyBm
dW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIGJyZWFrcG9pbnQgY29uZGl0aW9uLgotZnVuY3Rpb24g
ZGlzY29ubmVjdCgpCi17Ci0gICAgbG9nKCJDbG9zaW5nIHRoZSBpbnNwZWN0b3IuIik7Ci0gICAg
d2luZG93LmludGVybmFscy5jbG9zZUR1bW15SW5zcGVjdG9yRnJvbnRlbmQoKTsKLSAgICAvLyBU
aHJvd2luZyBhbiBleGNlcHRpb24gd2lsbCBtYWtlIHRoZSBkZWJ1Z2dlciBleGVjdXRlIHNvbWUg
Y29kZSB1c2luZyBhIGRlYWQgY29udGV4dC4KLSAgICAvLyBUZXN0IHBhc3NlcyBpZiB0aGUgZGVi
dWdnZXIgaXMgbm90IGNyYXNoaW5nLgotICAgIHRocm93IG5ldyBFcnJvcigpOwotfQotCi1mdW5j
dGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIu
c2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQotICAgIHsKLSAgICAgICAg
aWYgKC9yZXNvdXJjZXNcL2JyZWFrcG9pbnRcLmpzJC8udGVzdChtZXNzYWdlT2JqZWN0LnBhcmFt
cy51cmwpKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRm91bmQgYnJlYWtwb2lu
dC5qcyIpOwotICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSB7Ci0gICAgICAgICAgICAgICAg
bG9jYXRpb246IHsKLSAgICAgICAgICAgICAgICAgICAgc2NyaXB0SWQ6IG1lc3NhZ2VPYmplY3Qu
cGFyYW1zLnNjcmlwdElkLAotICAgICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiA4LAotICAg
ICAgICAgICAgICAgICAgICBjb2x1bW5OdW1iZXI6IDAKLSAgICAgICAgICAgICAgICB9LAotICAg
ICAgICAgICAgICAgIG9wdGlvbnM6IHsKLSAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiAi
ZGlzY29ubmVjdCgpIgotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH07Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50Iiwg
YnJlYWtwb2ludCwgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKTsKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjog
InJ1bkJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uKCkifSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAg
ICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlv
bihtZXNzYWdlT2JqZWN0KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6
IFBhdXNlZCBpbiBkZWJ1Z2dlcjogcmVhc29uID0gXCIiICsgbWVzc2FnZU9iamVjdC5wYXJhbXMu
cmVhc29uICsgIlwiIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0g
ICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwg
e30pOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08
cD5EZWJ1Z2dlci5zZXRCcmVha3BvaW50IHdpdGggYW4gYWN0aW9uIHRoYXQgdGhyb3dzIGFuIGV4
Y2VwdGlvbiBzaG91bGQgbm90IHBhdXNlIHRoZSBkZWJ1Z2dlci48L3A+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIv
YnJlYWtwb2ludC1jb25kaXRpb24td2l0aC1iYWQtc2NyaXB0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi13
aXRoLWJhZC1zY3JpcHQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBlYWQxMjk5MzY1Y2FhYTljMWVjOThkOTRkZjZkNjQwMWI2MjRjOTgwLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi13aXRoLWJhZC1zY3JpcHQtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgOTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQga2V5d29yZCAnZWxzZScKLVRoZSBkZWJ1
Z2dlciBzaG91bGQgbm90IGNyYXNoIHdoZW4gZXhlY3V0aW5nIGEgYmFkIHNjcmlwdCBmb3IgdGVz
dGluZyBhIGJyZWFrcG9pbnQgY29uZGl0aW9uLgotCi1Gb3VuZCBicmVha3BvaW50LmpzCi1pbnNp
ZGUgYnJlYWtwb2ludFdpdGhDb25kaXRpb24gYTooMSkgYjooMikgYStiOigzKQotUEFTUzogVGhl
IFZNIHNob3VsZCBub3QgY3Jhc2guCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi13aXRoLWJhZC1zY3JpcHQu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50
LWNvbmRpdGlvbi13aXRoLWJhZC1zY3JpcHQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNzYwZDVhZTY4OWE2YWQ3MzE5NTdlMzNhMjIxODE2NGJjOWVmZWQ1NC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24td2l0aC1iYWQtc2NyaXB0
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10
ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYnJlYWtwb2ludC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVz
dC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCJdID0gZnVuY3Rpb24obWVzc2Fn
ZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIGlmICgvcmVzb3VyY2VzXC9icmVha3BvaW50XC5qcyQv
LnRlc3QobWVzc2FnZU9iamVjdC5wYXJhbXMudXJsKSkgewotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIkZvdW5kIGJyZWFrcG9pbnQuanMiKTsKLSAgICAgICAgICAgIHZhciBicmVha3Bv
aW50ID0gewotICAgICAgICAgICAgICAgIGxvY2F0aW9uOiB7Ci0gICAgICAgICAgICAgICAgICAg
IHNjcmlwdElkOiBtZXNzYWdlT2JqZWN0LnBhcmFtcy5zY3JpcHRJZCwKLSAgICAgICAgICAgICAg
ICAgICAgbGluZU51bWJlcjogOCwKLSAgICAgICAgICAgICAgICAgICAgY29sdW1uTnVtYmVyOiAw
Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICBvcHRpb25zOiB7Ci0gICAgICAg
ICAgICAgICAgICAgIGF1dG9Db250aW51ZTogdHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgY29u
ZGl0aW9uOiAiZWxzZSIsIC8vIGEgYmFkIHNjcmlwdCB0aGF0IHNob3VsZCBmYWlsIHRvIHBhcnNl
LgotICAgICAgICAgICAgICAgICAgICBhY3Rpb246IFsKLSAgICAgICAgICAgICAgICAgICAgICAg
IHt0eXBlOiAibG9nIiwgZGF0YTogIkZBSUw6IFRoZSBicmVha3BvaW50IGFjdGlvbiBzaG91bGQg
bm90IGJlIGV4ZWN1dGVkIGlmIHRoZSBjb25kaXRpb24gaGFkIGFuIGV4Y2VwdGlvbi4ifQotICAg
ICAgICAgICAgICAgICAgICBdCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfTsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9p
bnQiLCBicmVha3BvaW50LCBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IpOwotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNz
aW9uOiAiYnJlYWtwb2ludFdpdGhDb25kaXRpb24oMSwyKSJ9LCBmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogVGhlIFZNIHNob3VsZCBub3QgY3Jh
c2guIik7Ci0gICAgICAgICAgICAgICAgY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICB9KTsK
LSAgICAgICAgfQotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1
Z2dlci5wYXVzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCi0gICAgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygiRkFJTDogUGF1c2VkIGluIGRlYnVnZ2VyOiByZWFzb24gPSBcIiIg
KyBtZXNzYWdlT2JqZWN0LnBhcmFtcy5yZWFzb24gKyAiXCIiKTsKLSAgICAgICAgY29tcGxldGVU
ZXN0KCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkKLSAgICB7Ci0gICAg
ICAgIC8vIFJlc2V0IHRoZSBwYXVzZU9uRXhjZXB0aW9uIHN0YXRlIGJlZm9yZSBlbmRpbmcgdGhl
IHRlc3QuCi0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotCi0g
ICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOwotfQot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UaGUgZGVi
dWdnZXIgc2hvdWxkIG5vdCBjcmFzaCB3aGVuIGV4ZWN1dGluZyBhIGJhZCBzY3JpcHQgZm9yIHRl
c3RpbmcgYSBicmVha3BvaW50IGNvbmRpdGlvbi48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2lu
dC1jb25kaXRpb24td2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLXdpdGgtZXhjZXB0
aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWIxZTI1YTk1
OTRlOTU2M2U5NTdlYzA3NzI3N2M3YTNiMmQyN2I0Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVi
dWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24td2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0Cisr
KyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVHlw
ZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndGhpcy53aWxs
LmNhdXNlJykKLVRoZSBkZWJ1Z2dlciBzaG91bGQgbm90IHBhdXNlIG9uIGV4Y2VwdGlvbnMgdGhy
b3duIHdoaWxlIGV4ZWN1dGluZyB0aGUgYnJlYWtwb2ludCBjb25kaXRpb25zLgotCi1Gb3VuZCBi
cmVha3BvaW50LmpzCi1pbnNpZGUgYnJlYWtwb2ludFdpdGhDb25kaXRpb24gYTooMSkgYjooMikg
YStiOigzKQotUEFTUzogVGhlIGRlYnVnZ2VyIHNob3VsZCBub3QgcGF1c2Ugb24gdGhlIGV4Y2Vw
dGlvbiBpbnNpZGUgdGhlIGNvbmRpdGlvbi4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLXdpdGgtZXhjZXB0
aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtw
b2ludC1jb25kaXRpb24td2l0aC1leGNlcHRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggY2Y5ODU0NmFlMmY4YjFkYzg0MWNiMmYxMjY0MTRhYmJkZTExYTc2Mi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24td2l0aC1leGNlcHRp
b24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29s
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9icmVha3BvaW50Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JU
ZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNz
YWdlT2JqZWN0KQotICAgIHsKLSAgICAgICAgaWYgKC9yZXNvdXJjZXNcL2JyZWFrcG9pbnRcLmpz
JC8udGVzdChtZXNzYWdlT2JqZWN0LnBhcmFtcy51cmwpKSB7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiRm91bmQgYnJlYWtwb2ludC5qcyIpOwotICAgICAgICAgICAgdmFyIGJyZWFr
cG9pbnQgPSB7Ci0gICAgICAgICAgICAgICAgbG9jYXRpb246IHsKLSAgICAgICAgICAgICAgICAg
ICAgc2NyaXB0SWQ6IG1lc3NhZ2VPYmplY3QucGFyYW1zLnNjcmlwdElkLAotICAgICAgICAgICAg
ICAgICAgICBsaW5lTnVtYmVyOiA4LAotICAgICAgICAgICAgICAgICAgICBjb2x1bW5OdW1iZXI6
IDAKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIG9wdGlvbnM6IHsKLSAgICAg
ICAgICAgICAgICAgICAgYXV0b0NvbnRpbnVlOiB0cnVlLAotICAgICAgICAgICAgICAgICAgICBj
b25kaXRpb246ICJ0aGlzLndpbGwuY2F1c2UuZXhjZXB0aW9uIiwKLSAgICAgICAgICAgICAgICAg
ICAgYWN0aW9uOiBbCi0gICAgICAgICAgICAgICAgICAgICAgICB7dHlwZTogImxvZyIsIGRhdGE6
ICJGQUlMOiBUaGUgYnJlYWtwb2ludCBhY3Rpb24gc2hvdWxkIG5vdCBiZSBleGVjdXRlZCBpZiB0
aGUgY29uZGl0aW9uIGhhZCBhbiBleGNlcHRpb24uIn0KLSAgICAgICAgICAgICAgICAgICAgXQot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH07Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50IiwgYnJlYWtwb2ludCwgSW5z
cGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2Vu
ZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIiwge3N0YXRlOiAiYWxsIn0s
IEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJicmVha3BvaW50
V2l0aENvbmRpdGlvbigxLDIpIn0sIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJQQVNTOiBUaGUgZGVidWdnZXIgc2hvdWxkIG5vdCBwYXVzZSBvbiB0aGUg
ZXhjZXB0aW9uIGluc2lkZSB0aGUgY29uZGl0aW9uLiIpOwotICAgICAgICAgICAgICAgIGNvbXBs
ZXRlVGVzdCgpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBJbnNw
ZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbihtZXNz
YWdlT2JqZWN0KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6IFBhdXNl
ZCBpbiBkZWJ1Z2dlcjogcmVhc29uID0gXCIiICsgbWVzc2FnZU9iamVjdC5wYXJhbXMucmVhc29u
ICsgIlwiIik7Ci0gICAgICAgIGNvbXBsZXRlVGVzdCgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IGNvbXBsZXRlVGVzdCgpCi0gICAgewotICAgICAgICAvLyBSZXNldCB0aGUgcGF1c2VPbkV4Y2Vw
dGlvbiBzdGF0ZSBiZWZvcmUgZW5kaW5nIHRoZSB0ZXN0LgotICAgICAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIsIHtzdGF0ZTogIm5v
bmUifSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotCi0g
ICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOwotfQot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UaGUgZGVi
dWdnZXIgc2hvdWxkIG5vdCBwYXVzZSBvbiBleGNlcHRpb25zIHRocm93biB3aGlsZSBleGVjdXRp
bmcgdGhlIGJyZWFrcG9pbnQgY29uZGl0aW9ucy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2lu
dC1ldmFsLXdpdGgtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNTIzZjMzYmRlMmI2OTk5ZDZl
NGZhMDUwY2IxOTczYTRhMjhlYzc1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVh
a3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNyArMCwwIEBACi1XaGlsZSBiZWluZyBwYXVzZWQgb24gYSBicmVha3BvaW50IHRoZSBkZWJ1
Z2dlciBzaG91bGQgaWdub3JlIHRoZSBleGNlcHRpb25zIGZyb20gY29uc29sZSBjb21tYW5kcy4K
LQotRm91bmQgYnJlYWtwb2ludC5qcwotaW5zaWRlIGJyZWFrcG9pbnRCYXNpYwotUEFTUzogUGF1
c2VkIGluIGRlYnVnZ2VyOiByZWFzb24gPSAiQnJlYWtwb2ludCIKLVBBU1M6IFRoZSBkZWJ1Z2dl
ciBzaG91bGQgbm90IHN0b3Agb24gdGhlIGV4Y2VwdGlvbiB0aHJvd24gYnkgYSBjb25zb2xlIGNv
bW1hbmQgd2hpbGUgcGF1c2VkIG9uIGEgYnJlYWtwb2ludC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtZXZhbC13aXRoLWV4
Y2VwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2Jy
ZWFrcG9pbnQtZXZhbC13aXRoLWV4Y2VwdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3N2NlMzgwNjdhYjUyMzk0NTMyNjljZGZhOWViZDRiNWM2NmQ2ZjkxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24uaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9icmVha3BvaW50LmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmV2
ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2Jq
ZWN0KQotICAgIHsKLSAgICAgICAgaWYgKC9yZXNvdXJjZXNcL2JyZWFrcG9pbnRcLmpzJC8udGVz
dChtZXNzYWdlT2JqZWN0LnBhcmFtcy51cmwpKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZygiRm91bmQgYnJlYWtwb2ludC5qcyIpOwotICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnQg
PSB7Ci0gICAgICAgICAgICAgICAgbG9jYXRpb246IHsKLSAgICAgICAgICAgICAgICAgICAgc2Ny
aXB0SWQ6IG1lc3NhZ2VPYmplY3QucGFyYW1zLnNjcmlwdElkLAotICAgICAgICAgICAgICAgICAg
ICBsaW5lTnVtYmVyOiAzLAotICAgICAgICAgICAgICAgICAgICBjb2x1bW5OdW1iZXI6IDAKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9OwotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludCIsIGJyZWFrcG9pbnQsIEluc3Bl
Y3RvclRlc3QuY2hlY2tGb3JFcnJvcik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRD
b21tYW5kKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIsIHtzdGF0ZTogImFsbCJ9LCBJ
bnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAiYnJlYWtwb2ludEJh
c2ljKCkifSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgY29tcGxldGVUZXN0KCk7Ci0g
ICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QuZXZl
bnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IG9uQnJlYWtwb2ludEhpdDsKLQotICAgIGZ1
bmN0aW9uIG9uQnJlYWtwb2ludEhpdChtZXNzYWdlT2JqZWN0KQotICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIlBBU1M6IFBhdXNlZCBpbiBkZWJ1Z2dlcjogcmVhc29uID0gXCIiICsg
bWVzc2FnZU9iamVjdC5wYXJhbXMucmVhc29uICsgIlwiIik7Ci0KLSAgICAgICAgLy8gTWFrZSBz
dXJlIHdlIGRvIG5vdCBwYXVzZSBhZ2FpbiBpbiB0aGUgZGVidWdnZXIuCi0gICAgICAgIEluc3Bl
Y3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IG9uUGF1c2VkT25FeGNl
cHRpb247Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFs
dWF0ZSIsIHtleHByZXNzaW9uOiAidGhpcy5zaG91bGQudHJpZ2dlci5hbi5leGNlcHRpb24ifSwg
ZnVuY3Rpb24obWVzc2FnZU9iamVjdCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVj
a0ZvckVycm9yKG1lc3NhZ2VPYmplY3QpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
IlBBU1M6IFRoZSBkZWJ1Z2dlciBzaG91bGQgbm90IHN0b3Agb24gdGhlIGV4Y2VwdGlvbiB0aHJv
d24gYnkgYSBjb25zb2xlIGNvbW1hbmQgd2hpbGUgcGF1c2VkIG9uIGEgYnJlYWtwb2ludC4iKTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnJlc3VtZSIp
OwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBvblBhdXNlZE9uRXhjZXB0aW9u
KG1lc3NhZ2VPYmplY3QpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDog
U2hvdWxkIG5vdCBicmVhayBvbiBleGNlcHRpb25zIHdoaWxlIHBhdXNlZCBvbiBhIGJyZWFrcG9p
bnQuIik7Ci0gICAgICAgIGNvbXBsZXRlVGVzdCgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNv
bXBsZXRlVGVzdCgpCi0gICAgewotICAgICAgICAvLyBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJEZWJ1Z2dlci5yZXN1bWUiLCB7fSk7Ci0gICAgICAgIC8vIFJlc2V0IHRoZSBwYXVzZU9uRXhj
ZXB0aW9uIHN0YXRlIGJlZm9yZSBlbmRpbmcgdGhlIHRlc3QuCi0gICAgICAgIEluc3BlY3RvclRl
c3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIiwge3N0YXRlOiAi
bm9uZSJ9KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZGlz
YWJsZSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLQot
ICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLX0K
LTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+V2hpbGUg
YmVpbmcgcGF1c2VkIG9uIGEgYnJlYWtwb2ludCB0aGUgZGVidWdnZXIgc2hvdWxkIGlnbm9yZSB0
aGUgZXhjZXB0aW9ucyBmcm9tIGNvbnNvbGUgY29tbWFuZHMuPC9wPgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2Jy
ZWFrcG9pbnQtaW5zaWRlLWNvbmRpdG9ucy1hbmQtYWN0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUtY29u
ZGl0b25zLWFuZC1hY3Rpb25zLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYTMzNDg0OTZhZmRhNTI1NDVjMjJlZGI5N2EyOGZmNjIwMDc4ZjUyNC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUtY29uZGl0b25zLWFuZC1hY3Rp
b25zLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLVRoZSBkZWJ1
Z2dlciBzaG91bGQgbm90IHBhdXNlIG9uIGV4Y2VwdGlvbnMgdGhyb3duIHdoaWxlIGV4ZWN1dGlu
ZyB0aGUgYnJlYWtwb2ludCBhY3Rpb25zLgotCi1Gb3VuZCBicmVha3BvaW50LmpzCi1pbnNpZGUg
YnJlYWtwb2ludFdpdGhDb25kaXRpb24gYTooMSkgYjooMikgYStiOigzKQotRXhlY3V0aW5nIGNv
bmRpdGlvbgotaW5zaWRlIGJyZWFrcG9pbnRCYXNpYwotQ29uZGl0aW9uIGV4ZWN1dGVkCi1FeGVj
dXRpbmcgYWN0aW9uCi1pbnNpZGUgYnJlYWtwb2ludEJhc2ljCi1BY3Rpb24gZXhlY3V0ZWQKLVBB
U1M6IEJyZWFrcG9pbnQgY29uZGl0aW9uIGFuZCBhY3Rpb24gZXhlY3V0ZWQsIGJ1dCB0aGUgZXhj
ZXB0aW9uIGRpZCBub3QgY2F1c2UgdGhlIGRlYnVnZ2VyIHRvIHBhdXNlLgotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNp
ZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUtY29uZGl0b25zLWFuZC1hY3Rpb25zLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4NDRkYjJiODEwOTBlYTIwNjM3OWI1
ODM4NDE3ZTc3M2JlMTdlNzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9p
bnQtaW5zaWRlLWNvbmRpdG9ucy1hbmQtYWN0aW9ucy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
NjkgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2JyZWFrcG9pbnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0
aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5z
Y3JpcHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCi0gICAgewotICAgICAgICBp
ZiAoL3Jlc291cmNlc1wvYnJlYWtwb2ludFwuanMkLy50ZXN0KG1lc3NhZ2VPYmplY3QucGFyYW1z
LnVybCkpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGb3VuZCBicmVha3BvaW50
LmpzIik7Ci0KLSAgICAgICAgICAgIHZhciBicmVha3BvaW50ID0gewotICAgICAgICAgICAgICAg
IGxvY2F0aW9uOiB7Ci0gICAgICAgICAgICAgICAgICAgIHNjcmlwdElkOiBtZXNzYWdlT2JqZWN0
LnBhcmFtcy5zY3JpcHRJZCwKLSAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlcjogOCwKLSAg
ICAgICAgICAgICAgICAgICAgY29sdW1uTnVtYmVyOiAwCi0gICAgICAgICAgICAgICAgfSwKLSAg
ICAgICAgICAgICAgICBvcHRpb25zOiB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG9Db250aW51
ZTogdHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiAibG9nKCdFeGVjdXRpbmcg
Y29uZGl0aW9uJyk7IGJyZWFrcG9pbnRCYXNpYygpOyBsb2coJ0NvbmRpdGlvbiBleGVjdXRlZCcp
OyB0cnVlOyIsCi0gICAgICAgICAgICAgICAgICAgIGFjdGlvbnM6IFsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHt0eXBlOiAiZXZhbHVhdGUiLCBkYXRhOiAibG9nKCdFeGVjdXRpbmcgYWN0aW9u
Jyk7IGJyZWFrcG9pbnRCYXNpYygpOyBsb2coJ0FjdGlvbiBleGVjdXRlZCcpOyJ9Ci0gICAgICAg
ICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9OwotCi0gICAg
ICAgICAgICAvLyBUaGlzIGJyZWFrcG9pbnQgc2hvdWxkIG5vdCBiZSBoaXQgYXQgYWxsLiBUaGUg
b25seSBjYWxsZXJzIGFyZSB0aGUgY29uZGl0aW9uIGFuZCBhY3Rpb24KLSAgICAgICAgICAgIC8v
IGFuZCBicmVha3BvaW50cyBzaG91bGQgYmUgZGlzYWJsZWQgd2hpbGUgZXhlY3V0aW5nIHRoZWly
IGNvZGUuCi0gICAgICAgICAgICB2YXIgYnJlYWtwb2ludEluc2lkZUNvbmRpdG9uQW5kQWN0aW9u
ID0gewotICAgICAgICAgICAgICAgIGxvY2F0aW9uOiB7Ci0gICAgICAgICAgICAgICAgICAgIHNj
cmlwdElkOiBtZXNzYWdlT2JqZWN0LnBhcmFtcy5zY3JpcHRJZCwKLSAgICAgICAgICAgICAgICAg
ICAgbGluZU51bWJlcjogMywKLSAgICAgICAgICAgICAgICAgICAgY29sdW1uTnVtYmVyOiAwCi0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfTsKLQotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludCIsIGJyZWFrcG9pbnQsIElu
c3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNl
bmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50IiwgYnJlYWtwb2ludEluc2lkZUNvbmRp
dG9uQW5kQWN0aW9uLCBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IpOwotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMi
LCB7c3RhdGU6ICJhbGwifSwgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKTsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVz
c2lvbjogImJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uKDEsMikifSwgZnVuY3Rpb24obWVzc2FnZU9i
amVjdCkgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihtZXNz
YWdlT2JqZWN0KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogQnJl
YWtwb2ludCBjb25kaXRpb24gYW5kIGFjdGlvbiBleGVjdXRlZCwgYnV0IHRoZSBleGNlcHRpb24g
ZGlkIG5vdCBjYXVzZSB0aGUgZGVidWdnZXIgdG8gcGF1c2UuIikKLSAgICAgICAgICAgICAgICBj
b21wbGV0ZVRlc3QoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgfQotCi0gICAg
SW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnBhdXNlZCJdID0gZnVuY3Rpb24o
bWVzc2FnZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiBQ
YXVzZWQgaW4gZGVidWdnZXI6IHJlYXNvbiA9IFwiIiArIG1lc3NhZ2VPYmplY3QucGFyYW1zLnJl
YXNvbiArICJcIiIpOwotICAgICAgICBjb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBjb21wbGV0ZVRlc3QoKQotICAgIHsKLSAgICAgICAgLy8gUmVzZXQgdGhlIHBhdXNlT25F
eGNlcHRpb24gc3RhdGUgYmVmb3JlIGVuZGluZyB0aGUgdGVzdC4KLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCB7c3RhdGU6
ICJub25lIn0pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0K
LQotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsK
LX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+VGhl
IGRlYnVnZ2VyIHNob3VsZCBub3QgcGF1c2Ugb24gZXhjZXB0aW9ucyB0aHJvd24gd2hpbGUgZXhl
Y3V0aW5nIHRoZSBicmVha3BvaW50IGFjdGlvbnMuPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJh
bWUtZnVuY3Rpb24tbmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS1mdW5jdGlvbi1uYW1lLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGE1ZjZmNmVhYTkyOWY0OTNkNWFhYmRkMTMyNTVm
MjNiMWVkY2JmYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS1mdW5j
dGlvbi1uYW1lLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotRGVi
dWdnZXIuc2V0QnJlYWtwb2ludCBvbiBsaW5lOmNvbHVtbiBpbiA8c2NyaXB0PgotCi1Gb3VuZCA8
c2NyaXB0PgotUnVubmluZyB0ZXN0RnVuY3Rpb24KLUhpdCBCcmVha3BvaW50IQotUEFTUzogZnJh
bWVbMF0gIiIKLVBBU1M6IGZyYW1lWzFdICJmb3JFYWNoIgotUEFTUzogZnJhbWVbMl0gInRlc3RG
dW5jdGlvbiIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL2NhbGwtZnJhbWUtZnVuY3Rpb24tbmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtZnVuY3Rpb24tbmFtZS5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZGM0ZWFiYjAwMzg4MDhhZjA0Zjc2NDM2NDA2YjYw
MWQ2OTMzN2MxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLWZ1bmN0
aW9uLW5hbWUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDc2ICswLDAgQEAKLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3By
b3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLS8vIFB1dCB0aGlzIGhlcmUgaW5z
dGVhZCBvZiBvbiA8Ym9keSBvbmxvYWQ+IHRvIHByZXZlbnQgYW4gZXh0cmEgRGVidWdnZXIuc2Ny
aXB0UGFyc2VkIGV2ZW50Lgotd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7Ci0KLWZ1bmN0aW9uIHRl
c3QoKQotewotICAgIC8vIFRoaXMgdGVzdCBzZXRzIGEgYnJlYWtwb2ludCBvbiBsaW5lOmNvbHVt
biBpbiB0aGUgPHNjcmlwdD4gYmVsb3cuCi0gICAgLy8gV2Ugc2V0IGEgYnJlYWtwb2ludCBiZWZv
cmUgZXZhbHVhdGluZyAnc3VtICs9IC4uLicsIGFuZCB2ZXJpZnkgdGhhdAotICAgIC8vIGNhbGwg
ZnJhbWUgZnVuY3Rpb25OYW1lcyBhcmUgd2hhdCB3ZSBleHBlY3QuCi0KLSAgICBJbnNwZWN0b3JU
ZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0KLSAgICBJbnNwZWN0b3JU
ZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNz
YWdlT2JqZWN0KQotICAgIHsKLSAgICAgICAgaWYgKC9jYWxsLWZyYW1lLWZ1bmN0aW9uLW5hbWVc
Lmh0bWwkLy50ZXN0KG1lc3NhZ2VPYmplY3QucGFyYW1zLnVybCkgJiYgbWVzc2FnZU9iamVjdC5w
YXJhbXMuc3RhcnRMaW5lID4gMTApIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJG
b3VuZCA8c2NyaXB0PiIpOwotICAgICAgICAgICAgdmFyIHNjcmlwdElkZW50aWZpZXIgPSBtZXNz
YWdlT2JqZWN0LnBhcmFtcy5zY3JpcHRJZDsKLSAgICAgICAgICAgIHZhciBsaW5lTnVtYmVyID0g
bWVzc2FnZU9iamVjdC5wYXJhbXMuc3RhcnRMaW5lICsgNjsKLSAgICAgICAgICAgIHZhciBjb2x1
bW5OdW1iZXIgPSAxMjsKLSAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9IHtzY3JpcHRJZDogc2Ny
aXB0SWRlbnRpZmllciwgbGluZU51bWJlcjogbGluZU51bWJlciwgY29sdW1uTnVtYmVyOiBjb2x1
bW5OdW1iZXJ9OwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdn
ZXIuc2V0QnJlYWtwb2ludCIsIHtsb2NhdGlvbjogbG9jYXRpb259LCBmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUnVubmluZyB0ZXN0RnVuY3Rpb24iKTsK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1
YXRlIiwge2V4cHJlc3Npb246ICJ0ZXN0RnVuY3Rpb24oKSJ9KTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICB9Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVn
Z2VyLnBhdXNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJIaXQgQnJlYWtwb2ludCEiKTsKLSAgICAgICAgdmFyIGZ1bmN0aW9u
TmFtZXMgPSBbIF07Ci0gICAgICAgIHZhciBpOwotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMzsg
aSsrKQotICAgICAgICAgICAgZnVuY3Rpb25OYW1lc1tpXSA9IG1lc3NhZ2VPYmplY3QucGFyYW1z
LmNhbGxGcmFtZXNbaV0uZnVuY3Rpb25OYW1lOwotICAgICAgICAKLSAgICAgICAgZnVuY3Rpb24g
YXNzZXJ0RnVuY3Rpb25OYW1lKGluZGV4LCBhY3R1YWwsIGV4cGVjdGVkKSB7Ci0gICAgICAgICAg
ICBpZiAoYWN0dWFsID09IGV4cGVjdGVkKQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCdQQVNTOiBmcmFtZVsnICsgaW5kZXggKyAnXSAiJyArIGFjdHVhbCArICciJyk7Ci0gICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coJ0ZBSUw6IGZy
YW1lWycgKyBpbmRleCArICddIGV4cGVjdCAiJyArIGV4cGVjdGVkICsgJyIsIGFjdHVhbCAiJyAr
IGFjdHVhbCArICciJyk7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBmcmFtZSAwIHNob3VsZCBi
ZSB0aGUgYW5vbnltb3VzIGlubmVyIGZ1bmN0aW9uLgotICAgICAgICBhc3NlcnRGdW5jdGlvbk5h
bWUoMCwgZnVuY3Rpb25OYW1lc1swXSwgIiIpOwotCi0gICAgICAgIC8vIGZyYW1lIDEgc2hvdWxk
IGJlICJmb3JFYWNoIiAoYW4gaW50ZXJuYWwvaG9zdCBmdW5jdGlvbikuCi0gICAgICAgIGFzc2Vy
dEZ1bmN0aW9uTmFtZSgxLCBmdW5jdGlvbk5hbWVzWzFdLCAiZm9yRWFjaCIpOwotCi0gICAgICAg
IC8vIGZyYW1lIDIgc2hvdWxkIGJlICJ0ZXN0RnVuY3Rpb24iLgotICAgICAgICBhc3NlcnRGdW5j
dGlvbk5hbWUoMiwgZnVuY3Rpb25OYW1lc1syXSwgInRlc3RGdW5jdGlvbiIpOwotCi0gICAgICAg
IEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keT4KLTxwPkRlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4g
Jmx0O3NjcmlwdCZndDs8L3A+Ci08c2NyaXB0Pi8vIExpbmUgMAotZnVuY3Rpb24gdGVzdEZ1bmN0
aW9uKCkgeyAvLyBMaW5lIDEKLSAgICB0cnkgeyAvLyBMaW5lIDIKLSAgICAgICAgdmFyIGFycmF5
ID0gWzIsIDUsIDddOyAvLyBMaW5lIDMKLSAgICAgICAgdmFyIHN1bSA9IDA7IC8vIExpbmUgNAot
ICAgICAgICBhcnJheS5mb3JFYWNoKGZ1bmN0aW9uKHZhbHVlKSB7IC8vIExpbmUgNQotICAgICAg
ICAgICAgc3VtICs9IGFycmF5W3ZhbHVlXTsgLy8gTGluZSA2Ci0gICAgICAgIH0pOwotICAgIH0g
Y2F0Y2ggKGUpIHsKLSAgICAgICAgY29uc29sZS5sb2coIkV4Y2VwdGlvbjogIiArIGUpOwotICAg
IH0KLX0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZy
YW1lLXRoaXMtaG9zdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDBiOTRjNzY1ZjkyZmZkOTQzYWE5Yzc0MGUwZDRlMGY4MTc4ZDI2YTMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0LWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDkgKzAsMCBAQAotRGVidWdnZXIuc2V0QnJlYWtwb2ludCBvbiBsaW5lOmNv
bHVtbiBpbiA8c2NyaXB0PgotCi1Gb3VuZCA8c2NyaXB0PgotUnVubmluZyB0ZXN0RnVuY3Rpb24K
LUhpdCBCcmVha3BvaW50IQotUEFTUzogZnJhbWVbMF0gdHlwZSAib2JqZWN0IiBjbGFzc05hbWUg
IldpbmRvdyIKLVBBU1M6IGZyYW1lWzFdIHR5cGUgIm9iamVjdCIgY2xhc3NOYW1lICJBcnJheSIK
LVBBU1M6IGZyYW1lWzJdIHR5cGUgIm9iamVjdCIgY2xhc3NOYW1lICJXaW5kb3ciCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1l
LXRoaXMtaG9zdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L2NhbGwtZnJhbWUtdGhpcy1ob3N0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDU5MDg1NGM5NjJmNzg3NjhiZDFlNDgzNTUwOTc1NThlYzE5OTIzN2UuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0Lmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw5MyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci0vLyBQdXQgdGhpcyBoZXJlIGluc3RlYWQgb2Ygb24gPGJvZHkgb25sb2FkPiB0byBw
cmV2ZW50IGFuIGV4dHJhIERlYnVnZ2VyLnNjcmlwdFBhcnNlZCBldmVudC4KLXdpbmRvdy5vbmxv
YWQgPSBydW5UZXN0OwotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICAvLyBUaGlzIHRlc3Qgc2V0
cyBhIGJyZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4gdGhlIDxzY3JpcHQ+IGJlbG93LgotICAg
IC8vIFdlIHNldCBhIGJyZWFrcG9pbnQgYmVmb3JlIGV2YWx1YXRpbmcgJ3N1bSArPSAuLi4nLCBh
bmQgdmVyaWZ5IHRoYXQKLSAgICAvLyBjYWxsIGZyYW1lIHRoaXMgdmFsdWVzIGFyZSB3aGF0IHdl
IGV4cGVjdC4KLQotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJs
ZSIsIHt9KTsKLQotICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5zY3Jp
cHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCi0gICAgewotICAgICAgICBpZiAo
L2NhbGwtZnJhbWUtdGhpcy1ob3N0XC5odG1sJC8udGVzdChtZXNzYWdlT2JqZWN0LnBhcmFtcy51
cmwpICYmIG1lc3NhZ2VPYmplY3QucGFyYW1zLnN0YXJ0TGluZSA+IDEwKSB7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiRm91bmQgPHNjcmlwdD4iKTsKLSAgICAgICAgICAgIHZhciBz
Y3JpcHRJZGVudGlmaWVyID0gbWVzc2FnZU9iamVjdC5wYXJhbXMuc2NyaXB0SWQ7Ci0gICAgICAg
ICAgICB2YXIgbGluZU51bWJlciA9IG1lc3NhZ2VPYmplY3QucGFyYW1zLnN0YXJ0TGluZSArIDY7
Ci0gICAgICAgICAgICB2YXIgY29sdW1uTnVtYmVyID0gMTI7Ci0gICAgICAgICAgICB2YXIgbG9j
YXRpb24gPSB7c2NyaXB0SWQ6IHNjcmlwdElkZW50aWZpZXIsIGxpbmVOdW1iZXI6IGxpbmVOdW1i
ZXIsIGNvbHVtbk51bWJlcjogY29sdW1uTnVtYmVyfTsKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnQiLCB7bG9jYXRpb246IGxvY2F0
aW9ufSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlJ1
bm5pbmcgdGVzdEZ1bmN0aW9uIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAidGVzdEZ1bmN0aW9uKCki
fSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEluc3BlY3RvclRl
c3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmpl
Y3QpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiSGl0IEJyZWFrcG9pbnQhIik7
Ci0gICAgICAgIHZhciB0aGlzVmFsdWVzID0gWyBdOwotICAgICAgICB2YXIgaTsKLSAgICAgICAg
Zm9yIChpID0gMDsgaSA8IDM7IGkrKykKLSAgICAgICAgICAgIHRoaXNWYWx1ZXNbaV0gPSBtZXNz
YWdlT2JqZWN0LnBhcmFtcy5jYWxsRnJhbWVzW2ldLnRoaXM7Ci0gICAgICAgIAotICAgICAgICBm
dW5jdGlvbiBhc3NlcnRUaGlzVmFsdWUoaW5kZXgsIGFjdHVhbCwgZXhwZWN0ZWQpIHsKLSAgICAg
ICAgICAgIHZhciBzdWNjZXNzID0gdHJ1ZTsKLSAgICAgICAgICAgIGlmIChhY3R1YWwudHlwZSAh
PSBleHBlY3RlZC50eXBlKSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coJ0ZB
SUw6IGZyYW1lWycgKyBpbmRleCArICddIGV4cGVjdCB0eXBlICInICsgZXhwZWN0ZWQudHlwZSAr
ICciLCBhY3R1YWwgIicgKyBhY3R1YWwudHlwZSArICciJyk7Ci0gICAgICAgICAgICAgICAgc3Vj
Y2VzcyA9IGZhbHNlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoYWN0dWFsLmNs
YXNzTmFtZSAhPSBleHBlY3RlZC5jbGFzc05hbWUpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygnRkFJTDogZnJhbWVbJyArIGluZGV4ICsgJ10gZXhwZWN0IGNsYXNzTmFtZSAi
JyArIGV4cGVjdGVkLmNsYXNzTmFtZSArICciLCBhY3R1YWwgIicgKyBhY3R1YWwuY2xhc3NOYW1l
ICsgJyInKTsKLSAgICAgICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIGlmIChzdWNjZXNzKQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCdQQVNTOiBmcmFtZVsnICsgaW5kZXggKyAnXSB0eXBlICInICsgYWN0dWFsLnR5cGUg
KyAnIiBjbGFzc05hbWUgIicgKyBhY3R1YWwuY2xhc3NOYW1lICsgJyInKTsKLSAgICAgICAgfQot
Ci0gICAgICAgIC8vIGZyYW1lIDAgc2hvdWxkIGJlIHRoZSBhbm9ueW1vdXMgaW5uZXIgZnVuY3Rp
b24uCi0gICAgICAgIGFzc2VydFRoaXNWYWx1ZSgwLCB0aGlzVmFsdWVzWzBdLCB7Ci0gICAgICAg
ICAgICAidHlwZSI6ICJvYmplY3QiLAotICAgICAgICAgICAgImNsYXNzTmFtZSI6ICJXaW5kb3ci
Ci0gICAgICAgIH0pOwotCi0gICAgICAgIC8vIGZyYW1lIDEgc2hvdWxkIGJlICJmb3JFYWNoIiAo
YW4gaW50ZXJuYWwvaG9zdCBmdW5jdGlvbikuCi0gICAgICAgIGFzc2VydFRoaXNWYWx1ZSgxLCB0
aGlzVmFsdWVzWzFdLCB7Ci0gICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAotICAgICAgICAg
ICAgImNsYXNzTmFtZSI6ICJBcnJheSIKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgLy8gZnJhbWUg
MiBzaG91bGQgYmUgInRlc3RGdW5jdGlvbiIuCi0gICAgICAgIGFzc2VydFRoaXNWYWx1ZSgyLCB0
aGlzVmFsdWVzWzJdLCB7Ci0gICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAotICAgICAgICAg
ICAgImNsYXNzTmFtZSI6ICJXaW5kb3ciCi0gICAgICAgIH0pOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+
Ci08cD5EZWJ1Z2dlci5zZXRCcmVha3BvaW50IG9uIGxpbmU6Y29sdW1uIGluICZsdDtzY3JpcHQm
Z3Q7PC9wPgotPHNjcmlwdD4vLyBMaW5lIDAKLWZ1bmN0aW9uIHRlc3RGdW5jdGlvbigpIHsgLy8g
TGluZSAxCi0gICAgdHJ5IHsgLy8gTGluZSAyCi0gICAgICAgIHZhciBhcnJheSA9IFsyLCA1LCA3
XTsgLy8gTGluZSAzCi0gICAgICAgIHZhciBzdW0gPSAwOyAvLyBMaW5lIDQKLSAgICAgICAgYXJy
YXkuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSkgeyAvLyBMaW5lIDUKLSAgICAgICAgICAgIHN1bSAr
PSBhcnJheVt2YWx1ZV07IC8vIExpbmUgNgotICAgICAgICB9KTsKLSAgICB9IGNhdGNoIChlKSB7
Ci0gICAgICAgIGNvbnNvbGUubG9nKCJFeGNlcHRpb246ICIgKyBlKTsKLSAgICB9Ci19Ci08L3Nj
cmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRo
aXMtbm9uc3RyaWN0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OTE0ZDAwNGRiOTQ0ODUwMjliMGZiODlmYjZlYmVlOWI4ZDA4YTkzOC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLW5vbnN0cmljdC1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1EZWJ1Z2dlci5zZXRCcmVha3BvaW50IG9uIGxp
bmU6Y29sdW1uIGluIDxzY3JpcHQ+Ci0KLUZvdW5kIDxzY3JpcHQ+Ci1SdW5uaW5nIHRlc3RGdW5j
dGlvbgotUEFTUzogc3RlcCAwOiB0eXBlICJvYmplY3QiIGNsYXNzTmFtZSAiTnVtYmVyIgotUEFT
Uzogc3RlcCAxOiB0eXBlICJvYmplY3QiIGNsYXNzTmFtZSAiU3RyaW5nIgotUEFTUzogc3RlcCAy
OiB0eXBlICJvYmplY3QiIGNsYXNzTmFtZSAiTnVtYmVyIgotUEFTUzogc3RlcCAzOiB0eXBlICJv
YmplY3QiIGNsYXNzTmFtZSAiU3RyaW5nIgotUEFTUzogc3RlcCA0OiB0eXBlICJvYmplY3QiIGNs
YXNzTmFtZSAiV2luZG93IgotUEFTUzogc3RlcCA1OiB0eXBlICJvYmplY3QiIGNsYXNzTmFtZSAi
V2luZG93IgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVi
dWdnZXIvY2FsbC1mcmFtZS10aGlzLW5vbnN0cmljdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ub25zdHJpY3QuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2MxNTgyNDE5ZTk3NmU4NzdjYTFmMzYwMTA3OGZh
ZjllNmJiMmY3OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlz
LW5vbnN0cmljdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTQ0ICswLDAgQEAKLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Vz
L3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLS8vIFB1dCB0aGlzIGhlcmUg
aW5zdGVhZCBvZiBvbiA8Ym9keSBvbmxvYWQ+IHRvIHByZXZlbnQgYW4gZXh0cmEgRGVidWdnZXIu
c2NyaXB0UGFyc2VkIGV2ZW50Lgotd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7Ci0KLWZ1bmN0aW9u
IHRlc3QoKQotewotICAgIC8vIFRoaXMgdGVzdCBzZXRzIGEgYnJlYWtwb2ludCBvbiBsaW5lOmNv
bHVtbiBpbiB0aGUgPHNjcmlwdD4gYmVsb3cuCi0gICAgLy8gV2Ugc2V0IGEgYnJlYWtwb2ludCBi
ZWZvcmUgZXZhbHVhdGluZyAnc3VtICs9IC4uLicsIGFuZCB2ZXJpZnkgdGhhdAotICAgIC8vIGNh
bGwgZnJhbWUgdGhpcyB2YWx1ZXMgYXJlIHdoYXQgd2UgZXhwZWN0LgotCi0gICAgSW5zcGVjdG9y
VGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOwotCi0gICAgSW5zcGVjdG9y
VGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCJdID0gZnVuY3Rpb24obWVz
c2FnZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIGlmICgvY2FsbC1mcmFtZS10aGlzLW5vbnN0cmlj
dFwuaHRtbCQvLnRlc3QobWVzc2FnZU9iamVjdC5wYXJhbXMudXJsKSAmJiBtZXNzYWdlT2JqZWN0
LnBhcmFtcy5zdGFydExpbmUgPiAxMCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
IkZvdW5kIDxzY3JpcHQ+Iik7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0SWRlbnRpZmllciA9IG1l
c3NhZ2VPYmplY3QucGFyYW1zLnNjcmlwdElkOwotICAgICAgICAgICAgdmFyIGxpbmVOdW1iZXIg
PSBtZXNzYWdlT2JqZWN0LnBhcmFtcy5zdGFydExpbmUgKyAzOwotICAgICAgICAgICAgdmFyIGNv
bHVtbk51bWJlciA9IDQ7Ci0gICAgICAgICAgICB2YXIgbG9jYXRpb24gPSB7c2NyaXB0SWQ6IHNj
cmlwdElkZW50aWZpZXIsIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcjogY29s
dW1uTnVtYmVyfTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVn
Z2VyLnNldEJyZWFrcG9pbnQiLCB7bG9jYXRpb246IGxvY2F0aW9ufSwgZnVuY3Rpb24oKSB7Ci0g
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlJ1bm5pbmcgdGVzdEZ1bmN0aW9uIik7
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFs
dWF0ZSIsIHtleHByZXNzaW9uOiAidGVzdEZ1bmN0aW9uKCkifSk7Ci0gICAgICAgICAgICB9KTsK
LSAgICAgICAgfQotICAgIH0KLQotICAgIHZhciBzdGVwID0gMDsKLQotICAgIEluc3BlY3RvclRl
c3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmpl
Y3QpCi0gICAgewotICAgICAgICBmdW5jdGlvbiBhc3NlcnRUaGlzVmFsdWUoc3RlcCwgYWN0dWFs
LCBleHBlY3RlZCkgewotICAgICAgICAgICAgdmFyIHN1Y2Nlc3MgPSB0cnVlOwotICAgICAgICAg
ICAgaWYgKGFjdHVhbC50eXBlICE9IGV4cGVjdGVkLnR5cGUpIHsKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygnRkFJTDogc3RlcCAnICsgc3RlcCArICc6IGV4cGVjdCB0eXBlICIn
ICsgZXhwZWN0ZWQudHlwZSArICciLCBhY3R1YWwgIicgKyBhY3R1YWwudHlwZSArICciJyk7Ci0g
ICAgICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNlOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBpZiAoYWN0dWFsLmNsYXNzTmFtZSAhPSBleHBlY3RlZC5jbGFzc05hbWUpIHsKLSAgICAg
ICAgICAgICAgICB2YXIgYWN0dWFsUmVzdWx0Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coJ0ZBSUw6IHN0ZXAgJyArIHN0ZXAgKyAnOiBleHBlY3QgY2xhc3NOYW1lICInICsgZXhw
ZWN0ZWQuY2xhc3NOYW1lICsgJyIsIGFjdHVhbCAiJyArIGFjdHVhbC5jbGFzc05hbWUgKyAnIicp
OwotICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgaWYgKHN1Y2Nlc3MpCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
J1BBU1M6IHN0ZXAgJyArIHN0ZXAgKyAnOiB0eXBlICInICsgYWN0dWFsLnR5cGUgKyAnIiBjbGFz
c05hbWUgIicgKyBhY3R1YWwuY2xhc3NOYW1lICsgJyInKTsKLSAgICAgICAgfQotCi0gICAgICAg
IHN3aXRjaCAoc3RlcCkgewotICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAgICBhc3NlcnRUaGlz
VmFsdWUoMCwgbWVzc2FnZU9iamVjdC5wYXJhbXMuY2FsbEZyYW1lc1sxXS50aGlzLCB7Ci0gICAg
ICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKLSAgICAgICAgICAgICAgICAiY2xhc3NOYW1l
IjogIk51bWJlciIKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAg
ICAgY2FzZSAxOgotICAgICAgICAgICAgYXNzZXJ0VGhpc1ZhbHVlKDEsIG1lc3NhZ2VPYmplY3Qu
cGFyYW1zLmNhbGxGcmFtZXNbMV0udGhpcywgewotICAgICAgICAgICAgICAgICJ0eXBlIjogIm9i
amVjdCIsCi0gICAgICAgICAgICAgICAgImNsYXNzTmFtZSI6ICJTdHJpbmciCi0gICAgICAgICAg
ICB9KTsKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAg
IGFzc2VydFRoaXNWYWx1ZSgyLCBtZXNzYWdlT2JqZWN0LnBhcmFtcy5jYWxsRnJhbWVzWzFdLnRo
aXMsIHsKLSAgICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAotICAgICAgICAgICAgICAg
ICJjbGFzc05hbWUiOiAiTnVtYmVyIgotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBicmVh
azsKLQotICAgICAgICBjYXNlIDM6Ci0gICAgICAgICAgICBhc3NlcnRUaGlzVmFsdWUoMywgbWVz
c2FnZU9iamVjdC5wYXJhbXMuY2FsbEZyYW1lc1sxXS50aGlzLCB7Ci0gICAgICAgICAgICAgICAg
InR5cGUiOiAib2JqZWN0IiwKLSAgICAgICAgICAgICAgICAiY2xhc3NOYW1lIjogIlN0cmluZyIK
LSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgY2FzZSA0Ogot
ICAgICAgICAgICAgYXNzZXJ0VGhpc1ZhbHVlKDQsIG1lc3NhZ2VPYmplY3QucGFyYW1zLmNhbGxG
cmFtZXNbMV0udGhpcywgewotICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCi0gICAg
ICAgICAgICAgICAgImNsYXNzTmFtZSI6ICJXaW5kb3ciCi0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgNToKLSAgICAgICAgICAgIGFzc2VydFRoaXNW
YWx1ZSg1LCBtZXNzYWdlT2JqZWN0LnBhcmFtcy5jYWxsRnJhbWVzWzFdLnRoaXMsIHsKLSAgICAg
ICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAotICAgICAgICAgICAgICAgICJjbGFzc05hbWUi
OiAiV2luZG93IgotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
fQotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5yZXN1bWUiLCB7
fSk7Ci0gICAgICAgIGlmIChzdGVwID09IDUpCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCgpOwotICAgICAgICBzdGVwKys7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keT4KLTxwPkRlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4g
Jmx0O3NjcmlwdCZndDs8L3A+Ci08c2NyaXB0Pi8vIExpbmUgMAotLy8gTGluZSAxCi1mdW5jdGlv
biBicmVha1dpdGhNZXNzYWdlKG1lc3NhZ2UpIHsgLy8gTGluZSAyCi0gICAgbWVzc2FnZTsgLy8g
TGluZSAzCi19Ci1mdW5jdGlvbiBhY2Nlc3NUaGlzKCkgewotICAgIGJyZWFrV2l0aE1lc3NhZ2Uo
InRoaXMgaXMgIiArIHRoaXMpOwotfQotZnVuY3Rpb24gZG9udEFjY2Vzc1RoaXMoKSB7Ci0gICAg
YnJlYWtXaXRoTWVzc2FnZSgibm90IGFjY2Vzc2luZyB0aGlzIik7Ci19Ci1mdW5jdGlvbiB0ZXN0
RnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRoaXNWYWx1ZSA9IDI7Ci0gICAgYWNjZXNzVGhpcy5iaW5k
KHRoaXNWYWx1ZSkoKTsKLQotICAgIHRoaXNWYWx1ZSA9ICJIZWxsbyI7Ci0gICAgYWNjZXNzVGhp
cy5iaW5kKHRoaXNWYWx1ZSkoKTsKLQotICAgIHRoaXNWYWx1ZSA9IDI7Ci0gICAgZG9udEFjY2Vz
c1RoaXMuYmluZCh0aGlzVmFsdWUpKCk7Ci0KLSAgICB0aGlzVmFsdWUgPSAiSGVsbG8iOwotICAg
IGRvbnRBY2Nlc3NUaGlzLmJpbmQodGhpc1ZhbHVlKSgpOwotCi0gICAgZnVuY3Rpb24gZm9vKCkg
ewotICAgICAgICB2YXIgZm9vU3R1ZmYgPSAxOwotICAgICAgICBmdW5jdGlvbiBnb28oKSB7Ci0g
ICAgICAgICAgICBhY2Nlc3NUaGlzKCk7Ci0KLSAgICAgICAgICAgIGRvbnRBY2Nlc3NUaGlzKCk7
Ci0KLSAgICAgICAgICAgIHJldHVybiBmb29TdHVmZjsKLSAgICAgICAgfQotICAgICAgICBnb28o
KTsKLSAgICB9Ci0gICAgZm9vKCk7Ci19Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9jYWxsLWZy
YW1lLXRoaXMtc3RyaWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtc3RyaWN0LWV4cGVjdGVkLnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2M3YjJhODhjNjdjZGFhY2FkMGJhZWY3ZDY0Y2FkZGEy
OGIwYjAwYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLXN0
cmljdC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi1EZWJ1Z2dl
ci5zZXRCcmVha3BvaW50IG9uIGxpbmU6Y29sdW1uIGluIDxzY3JpcHQ+Ci0KLUZvdW5kIDxzY3Jp
cHQ+Ci1SdW5uaW5nIHRlc3RGdW5jdGlvbgotUEFTUzogc3RlcCAwOiB0eXBlICJudW1iZXIiIHZh
bHVlICIyIgotUEFTUzogc3RlcCAxOiB0eXBlICJzdHJpbmciIHZhbHVlICJIZWxsbyIKLVBBU1M6
IHN0ZXAgMjogdHlwZSAibnVtYmVyIiB2YWx1ZSAiMiIKLVBBU1M6IHN0ZXAgMzogdHlwZSAic3Ry
aW5nIiB2YWx1ZSAiSGVsbG8iCi1QQVNTOiBzdGVwIDQ6IHR5cGUgInVuZGVmaW5lZCIgdmFsdWUg
InVuZGVmaW5lZCIKLVBBU1M6IHN0ZXAgNTogdHlwZSAidW5kZWZpbmVkIiB2YWx1ZSAidW5kZWZp
bmVkIgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvY2FsbC1mcmFtZS10aGlzLXN0cmljdC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1zdHJpY3QuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZjViN2ViMTk2YmEzMWQ1ZTIzZDA5OGYyNWQwZTBlOGYwNzcxNjY2
Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLXN0cmljdC5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTQ5ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLS8vIFB1dCB0aGlzIGhlcmUgaW5zdGVhZCBvZiBv
biA8Ym9keSBvbmxvYWQ+IHRvIHByZXZlbnQgYW4gZXh0cmEgRGVidWdnZXIuc2NyaXB0UGFyc2Vk
IGV2ZW50Lgotd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewot
ICAgIC8vIFRoaXMgdGVzdCBzZXRzIGEgYnJlYWtwb2ludCBvbiBsaW5lOmNvbHVtbiBpbiB0aGUg
PHNjcmlwdD4gYmVsb3cuCi0gICAgLy8gV2Ugc2V0IGEgYnJlYWtwb2ludCBiZWZvcmUgZXZhbHVh
dGluZyAnc3VtICs9IC4uLicsIGFuZCB2ZXJpZnkgdGhhdAotICAgIC8vIGNhbGwgZnJhbWUgdGhp
cyB2YWx1ZXMgYXJlIHdoYXQgd2UgZXhwZWN0LgotCi0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOwotCi0gICAgSW5zcGVjdG9yVGVzdC5ldmVudEhh
bmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkK
LSAgICB7Ci0gICAgICAgIGlmICgvY2FsbC1mcmFtZS10aGlzLXN0cmljdFwuaHRtbCQvLnRlc3Qo
bWVzc2FnZU9iamVjdC5wYXJhbXMudXJsKSAmJiBtZXNzYWdlT2JqZWN0LnBhcmFtcy5zdGFydExp
bmUgPiAxMCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZvdW5kIDxzY3JpcHQ+
Iik7Ci0gICAgICAgICAgICB2YXIgc2NyaXB0SWRlbnRpZmllciA9IG1lc3NhZ2VPYmplY3QucGFy
YW1zLnNjcmlwdElkOwotICAgICAgICAgICAgdmFyIGxpbmVOdW1iZXIgPSBtZXNzYWdlT2JqZWN0
LnBhcmFtcy5zdGFydExpbmUgKyAzOwotICAgICAgICAgICAgdmFyIGNvbHVtbk51bWJlciA9IDQ7
Ci0gICAgICAgICAgICB2YXIgbG9jYXRpb24gPSB7c2NyaXB0SWQ6IHNjcmlwdElkZW50aWZpZXIs
IGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcjogY29sdW1uTnVtYmVyfTsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9p
bnQiLCB7bG9jYXRpb246IGxvY2F0aW9ufSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coIlJ1bm5pbmcgdGVzdEZ1bmN0aW9uIik7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNz
aW9uOiAidGVzdEZ1bmN0aW9uKCkifSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAg
IH0KLQotICAgIHZhciBzdGVwID0gMDsKLQotICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVy
WyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCi0gICAgewotICAg
ICAgICBmdW5jdGlvbiBhc3NlcnRUaGlzVmFsdWUoc3RlcCwgYWN0dWFsLCBleHBlY3RlZCkgewot
ICAgICAgICAgICAgdmFyIHN1Y2Nlc3MgPSB0cnVlOwotICAgICAgICAgICAgaWYgKGFjdHVhbC50
eXBlICE9IGV4cGVjdGVkLnR5cGUpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygnRkFJTDogc3RlcCAnICsgc3RlcCArICc6IGV4cGVjdCB0eXBlICInICsgZXhwZWN0ZWQudHlw
ZSArICciLCBhY3R1YWwgIicgKyBhY3R1YWwudHlwZSArICciJyk7Ci0gICAgICAgICAgICAgICAg
c3VjY2VzcyA9IGZhbHNlOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoYWN0dWFs
LnR5cGUgIT0gInVuZGVmaW5lZCIpIHsKLSAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFjdHVh
bC52YWx1ZSAhPSB0eXBlb2YgZXhwZWN0ZWQudmFsdWUpIHsKLSAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coJ0ZBSUw6IHN0ZXAgJyArIHN0ZXAgKyAnOiBleHBlY3QgdmFsdWUg
dHlwZSAiJyArIHR5cGVvZiBleHBlY3RlZC52YWx1ZSArICciLCBhY3R1YWwgIicgKyB0eXBlb2Yg
YWN0dWFsLnZhbHVlICsgJyInKTsKLSAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNl
OwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGlmIChhY3R1YWwudmFsdWUg
IT0gZXhwZWN0ZWQudmFsdWUpIHsKLSAgICAgICAgICAgICAgICAgICAgdmFyIGFjdHVhbFJlc3Vs
dAotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygnRkFJTDogc3RlcCAnICsg
c3RlcCArICc6IGV4cGVjdCB2YWx1ZSAiJyArIGV4cGVjdGVkLnZhbHVlICsgJyIsIGFjdHVhbCAi
JyArIGFjdHVhbC52YWx1ZSArICciJyk7Ci0gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBm
YWxzZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlm
IChzdWNjZXNzKQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCdQQVNTOiBzdGVw
ICcgKyBzdGVwICsgJzogdHlwZSAiJyArIGFjdHVhbC50eXBlICsgJyIgdmFsdWUgIicgKyBhY3R1
YWwudmFsdWUgKyAnIicpOwotICAgICAgICB9Ci0KLSAgICAgICAgc3dpdGNoIChzdGVwKSB7Ci0g
ICAgICAgIGNhc2UgMDoKLSAgICAgICAgICAgIGFzc2VydFRoaXNWYWx1ZSgwLCBtZXNzYWdlT2Jq
ZWN0LnBhcmFtcy5jYWxsRnJhbWVzWzFdLnRoaXMsIHsKLSAgICAgICAgICAgICAgICAidHlwZSI6
ICJudW1iZXIiLAotICAgICAgICAgICAgICAgICJ2YWx1ZSI6IDIKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgY2FzZSAxOgotICAgICAgICAgICAgYXNzZXJ0
VGhpc1ZhbHVlKDEsIG1lc3NhZ2VPYmplY3QucGFyYW1zLmNhbGxGcmFtZXNbMV0udGhpcywgewot
ICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICAgICAgICAgInZhbHVl
IjogIkhlbGxvIgotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAg
ICBjYXNlIDI6Ci0gICAgICAgICAgICBhc3NlcnRUaGlzVmFsdWUoMiwgbWVzc2FnZU9iamVjdC5w
YXJhbXMuY2FsbEZyYW1lc1sxXS50aGlzLCB7Ci0gICAgICAgICAgICAgICAgInR5cGUiOiAibnVt
YmVyIiwKLSAgICAgICAgICAgICAgICAidmFsdWUiOiAyCi0gICAgICAgICAgICB9KTsKLSAgICAg
ICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgMzoKLSAgICAgICAgICAgIGFzc2VydFRoaXNW
YWx1ZSgzLCBtZXNzYWdlT2JqZWN0LnBhcmFtcy5jYWxsRnJhbWVzWzFdLnRoaXMsIHsKLSAgICAg
ICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAotICAgICAgICAgICAgICAgICJ2YWx1ZSI6ICJI
ZWxsbyIKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgY2Fz
ZSA0OgotICAgICAgICAgICAgYXNzZXJ0VGhpc1ZhbHVlKDQsIG1lc3NhZ2VPYmplY3QucGFyYW1z
LmNhbGxGcmFtZXNbMV0udGhpcywgewotICAgICAgICAgICAgICAgICJ0eXBlIjogInVuZGVmaW5l
ZCIKLSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgY2FzZSA1
OgotICAgICAgICAgICAgYXNzZXJ0VGhpc1ZhbHVlKDUsIG1lc3NhZ2VPYmplY3QucGFyYW1zLmNh
bGxGcmFtZXNbMV0udGhpcywgewotICAgICAgICAgICAgICAgICJ0eXBlIjogInVuZGVmaW5lZCIK
LSAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIucmVzdW1lIiwge30pOwotICAgICAg
ICBpZiAoc3RlcCA9PSA1KQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKLSAgICAgICAgc3RlcCsrOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+
Ci08cD5EZWJ1Z2dlci5zZXRCcmVha3BvaW50IG9uIGxpbmU6Y29sdW1uIGluICZsdDtzY3JpcHQm
Z3Q7PC9wPgotPHNjcmlwdD4vLyBMaW5lIDAKLSJ1c2Ugc3RyaWN0IjsgLy8gTGluZSAxCi1mdW5j
dGlvbiBicmVha1dpdGhNZXNzYWdlKG1lc3NhZ2UpIHsgLy8gTGluZSAyCi0gICAgbWVzc2FnZTsg
Ly8gTGluZSAzCi19Ci1mdW5jdGlvbiBhY2Nlc3NUaGlzKCkgewotICAgIGJyZWFrV2l0aE1lc3Nh
Z2UoInRoaXMgaXMgIiArIHRoaXMpOwotfQotZnVuY3Rpb24gZG9udEFjY2Vzc1RoaXMoKSB7Ci0g
ICAgYnJlYWtXaXRoTWVzc2FnZSgibm90IGFjY2Vzc2luZyB0aGlzIik7Ci19Ci1mdW5jdGlvbiB0
ZXN0RnVuY3Rpb24oKSB7Ci0gICAgdmFyIHRoaXNWYWx1ZSA9IDI7Ci0gICAgYWNjZXNzVGhpcy5i
aW5kKHRoaXNWYWx1ZSkoKTsKLQotICAgIHRoaXNWYWx1ZSA9ICJIZWxsbyI7Ci0gICAgYWNjZXNz
VGhpcy5iaW5kKHRoaXNWYWx1ZSkoKTsKLQotICAgIHRoaXNWYWx1ZSA9IDI7Ci0gICAgZG9udEFj
Y2Vzc1RoaXMuYmluZCh0aGlzVmFsdWUpKCk7Ci0KLSAgICB0aGlzVmFsdWUgPSAiSGVsbG8iOwot
ICAgIGRvbnRBY2Nlc3NUaGlzLmJpbmQodGhpc1ZhbHVlKSgpOwotCi0gICAgZnVuY3Rpb24gZm9v
KCkgewotICAgICAgICB2YXIgZm9vU3R1ZmYgPSAxOwotICAgICAgICBmdW5jdGlvbiBnb28oKSB7
Ci0gICAgICAgICAgICBhY2Nlc3NUaGlzKCk7Ci0KLSAgICAgICAgICAgIGRvbnRBY2Nlc3NUaGlz
KCk7Ci0KLSAgICAgICAgICAgIHJldHVybiBmb29TdHVmZjsKLSAgICAgICAgfQotICAgICAgICBn
b28oKTsKLSAgICB9Ci0gICAgZm9vKCk7Ci19Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9kZWJ1
Z2dlci1zdGF0ZW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2RlYnVnZ2VyL2RlYnVnZ2VyLXN0YXRlbWVudC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDkzMTE4ZjA5YjhiMzFhNmI1MTA3ODYyZjdmN2UzNjVkM2Q2NzQ4
M2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2RlYnVnZ2VyLXN0YXRlbWVudC1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLURlYnVnZ2VyIHN0YXRlbWVu
dCBzaG91bGQgYnJlYWsgaW4gZGVidWdnZXIuCi0KLUZvdW5kIGJyZWFrcG9pbnQuanMKLUluIGZ1
bmN0aW9uIHdpdGggZGVidWdnZXIgc3RhdGVtZW50Ci1Ccm9rZSBhdCBkZWJ1Z2dlciBzdGF0ZW1l
bnQKLQotQWZ0ZXIgZGVidWdnZXIgc3RhdGVtZW50Ci1QQVNTCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9kZWJ1Z2dlci1zdGF0ZW1lbnQuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9kZWJ1Z2dlci1zdGF0
ZW1lbnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjQzMDI0Mjk2NDlmYjdj
OTFjNWJmYmQ5YzdlZjkxMTBhYmI4ZWZlYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIv
ZGVidWdnZXItc3RhdGVtZW50Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvYnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+Ci0KLTxzY3JpcHQ+Ci0vLyBQdXQgdGhpcyBoZXJl
IGluc3RlYWQgb2Ygb24gPGJvZHkgb25sb2FkPiB0byBwcmV2ZW50IGFuIGV4dHJhIERlYnVnZ2Vy
LnNjcmlwdFBhcnNlZCBldmVudC4KLXdpbmRvdy5vbmxvYWQgPSBydW5UZXN0OwotCi1mdW5jdGlv
biB0ZXN0KCkKLXsKLSAgICAvLyBUaGlzIHRlc3Qgc2V0dGluZyAyIGJyZWFrcG9pbnRzIGluIERG
RyBjb21waWxlZCBmdW5jdGlvbnM6IG9uZSBpbmxpbmVkLAotICAgIC8vIGFuZCBvbmUgbm90IGlu
bGluZWQuCi0KLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUi
LCB7fSk7Ci0KLSAgICB2YXIgYnJlYWtwb2ludEZvdW5kID0gZmFsc2U7Ci0KLSAgICBJbnNwZWN0
b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbiht
ZXNzYWdlT2JqZWN0KQotICAgIHsKLSAgICAgICAgaWYgKC9yZXNvdXJjZXNcL2JyZWFrcG9pbnRc
LmpzJC8udGVzdChtZXNzYWdlT2JqZWN0LnBhcmFtcy51cmwpKSB7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiRm91bmQgYnJlYWtwb2ludC5qcyIpOwotCi0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwgewotICAgICAgICAgICAg
ICAgIGV4cHJlc3Npb246ICJkZWJ1Z2dlclN0YXRlbWVudCgpOyIKLSAgICAgICAgICAgIH0sIGZ1
bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7Ci0gICAgICAgICAgICAgICAgaWYgKGJyZWFrcG9pbnRG
b3VuZCkKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1MiKTsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAg
fSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsi
RGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQotICAgIHsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyb2tlIGF0IGRlYnVnZ2VyIHN0YXRlbWVudFxuIik7Ci0g
ICAgICAgIGJyZWFrcG9pbnRGb3VuZCA9IHRydWU7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2Vu
ZENvbW1hbmQoIkRlYnVnZ2VyLnJlc3VtZSIsIHt9KTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5PgotPHA+RGVidWdnZXIgc3RhdGVtZW50IHNob3VsZCBicmVhayBpbiBkZWJ1
Z2dlci48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvZGlkU2FtcGxlUHJvYmUtbXVsdGlwbGUtcHJvYmVzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9kaWRT
YW1wbGVQcm9iZS1tdWx0aXBsZS1wcm9iZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA2NjczMTYyYzdmNjE1ZmZkMWJhZGI0MjczYjVkY2YxMDY3MDU3YjhhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9kaWRTYW1wbGVQcm9iZS1tdWx0aXBsZS1wcm9i
ZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotRGVidWdnZXIu
c2V0QnJlYWtwb2ludCB3aXRoIG11bHRpcGxlIHByb2JlIGFjdGlvbnMgYXQgdGhlIHNhbWUgYnJl
YWtwb2ludC4gVGVzdCBEZWJ1Z2dlci5kaWRTYW1wbGVQcm9iZSBldmVudHMgZm9yIHRoZSBwcm9i
ZSBzYW1wbGVzLgotCi1Gb3VuZCBicmVha3BvaW50LmpzCi1SdW5uaW5nIGJyZWFrcG9pbnRBY3Rp
b25zIHRvIHRyaWdnZXIgcHJvYmUgc2FtcGxlcy4KLWluc2lkZSBicmVha3BvaW50QWN0aW9ucyBh
OigxMikgYjooW29iamVjdCBPYmplY3RdKQotaW5zaWRlIGJyZWFrcG9pbnRBY3Rpb25zIGE6KDEy
KSBiOihbb2JqZWN0IE9iamVjdF0pCi1SZWNlaXZlZCBwcm9iZSBzYW1wbGUgcGF5bG9hZDogeyJ0
eXBlIjoibnVtYmVyIiwidmFsdWUiOjEyLCJkZXNjcmlwdGlvbiI6IjEyIn0KLVJlY2VpdmVkIHBy
b2JlIHNhbXBsZSBwYXlsb2FkOiB7InR5cGUiOiJudW1iZXIiLCJ2YWx1ZSI6MTIsImRlc2NyaXB0
aW9uIjoiMTIifQotUmVjZWl2ZWQgcHJvYmUgc2FtcGxlIHBheWxvYWQ6IHsidHlwZSI6Im51bWJl
ciIsInZhbHVlIjoxMiwiZGVzY3JpcHRpb24iOiIxMiJ9Ci1SZWNlaXZlZCBwcm9iZSBzYW1wbGUg
cGF5bG9hZDogeyJ0eXBlIjoibnVtYmVyIiwidmFsdWUiOjEyLCJkZXNjcmlwdGlvbiI6IjEyIn0K
LVBBU1M6IFNhbXBsZXMgZnJvbSBkaWZmZXJlbnQgcHJvYmUgYWN0aW9ucyBzaG91bGQgaGF2ZSB1
bmlxdWUgYWN0aW9uIGlkZW50aWZpZXJzLgotUEFTUzogU2FtcGxlcyBmcm9tIHByb2JlIGFjdGlv
bnMgb24gdGhlIHNhbWUgYnJlYWtwb2ludCBzaG91bGQgaGF2ZSB0aGUgc2FtZSBiYXRjaCBpZGVu
dGlmaWVycy4KLVBBU1M6IFNhbXBsZUlkcyBmcm9tIGEgYW55IHByb2JlIGFyZSBzZXF1ZW50aWFs
IGFuZCBzdGFydCBjb3VudGluZyBmcm9tIG9uZS4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2RpZFNhbXBsZVByb2JlLW11bHRpcGxlLXByb2Jl
cy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2RpZFNhbXBs
ZVByb2JlLW11bHRpcGxlLXByb2Jlcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA2NWNjNzczNmRlYzAxODgyNGUzYzg1NGVjYjc0ZmZhZjAzMDZhMzMyLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9kaWRTYW1wbGVQcm9iZS1tdWx0aXBsZS1wcm9iZXMuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDk0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9icmVha3BvaW50LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmltcG9ydFNj
cmlwdCgiLi4vLi4vLi4vLi4vaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9wcm9iZS1oZWxw
ZXIuanMiKTsKLQotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJs
ZSIsIHt9KTsKLQotICAgIHZhciBzYW1wbGVzID0gW107Ci0gICAgY29uc3QgZXhwZWN0ZWRTYW1w
bGVDb3VudCA9IDQ7Ci0KLSAgICBmdW5jdGlvbiByZWNlaXZlZEFsbEV4cGVjdGVkU2FtcGxlcygp
IHsKLSAgICAgICAgcmV0dXJuIHNhbXBsZXMubGVuZ3RoID09PSBleHBlY3RlZFNhbXBsZUNvdW50
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGR1bXBTYW1wbGVzKCkgewotICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHNhbXBsZXMubGVuZ3RoOyBpKyspCi0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiU2FtcGxlICIgKyAoaSArIDEpICsgIjogIiArIEpTT04uc3RyaW5naWZ5KHNhbXBs
ZXNbaV0pKTsKLSAgICB9Ci0KLSAgICB2YXIgdGVzdHMgPSBbCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIG1lc3NhZ2U6ICJTYW1wbGVzIGZyb20gZGlmZmVyZW50IHByb2JlIGFjdGlvbnMgc2hvdWxk
IGhhdmUgdW5pcXVlIGFjdGlvbiBpZGVudGlmaWVycy4iLAotICAgICAgICAgICAgcHJlZGljYXRl
OiBmdW5jdGlvbiBzYW1wbGVzSGF2ZVVuaXF1ZUFjdGlvbklkcygpIHsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gc2FtcGxlc1swXS5wcm9iZUlkICE9PSBzYW1wbGVzWzFdLnByb2JlSWQ7Ci0gICAg
ICAgICAgICB9LAotICAgICAgICAgICAgZXJyb3I6IGR1bXBTYW1wbGVzCi0gICAgICAgIH0sCi0g
ICAgICAgIHsKLSAgICAgICAgICAgIG1lc3NhZ2U6ICJTYW1wbGVzIGZyb20gcHJvYmUgYWN0aW9u
cyBvbiB0aGUgc2FtZSBicmVha3BvaW50IHNob3VsZCBoYXZlIHRoZSBzYW1lIGJhdGNoIGlkZW50
aWZpZXJzLiIsCi0gICAgICAgICAgICBwcmVkaWNhdGU6IGZ1bmN0aW9uIHNhbXBsZXNIYXZlRXF1
YWxCYXRjaElkcygpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gc2FtcGxlc1swXS5iYXRjaElk
ID09PSBzYW1wbGVzWzFdLmJhdGNoSWQ7Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgZXJy
b3I6IGR1bXBTYW1wbGVzCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgIG1lc3Nh
Z2U6ICJTYW1wbGVJZHMgZnJvbSBhIGFueSBwcm9iZSBhcmUgc2VxdWVudGlhbCBhbmQgc3RhcnQg
Y291bnRpbmcgZnJvbSBvbmUuIiwKLSAgICAgICAgICAgIHByZWRpY2F0ZTogZnVuY3Rpb24gc2Ft
cGxlc0hhdmVTZXF1ZW50aWFsSWRzKCkgewotICAgICAgICAgICAgICAgIHJldHVybiBzYW1wbGVz
LmV2ZXJ5KGZ1bmN0aW9uKHNhbXBsZSwgaWR4KSB7IHJldHVybiBzYW1wbGUuc2FtcGxlSWQgPT09
IGlkeCArIDE7IH0pOwotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIGVycm9yOiBkdW1wU2Ft
cGxlcwotICAgICAgICB9LAotICAgIF07Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxl
clsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQotICAg
IHsKLSAgICAgICAgaWYgKC9yZXNvdXJjZXNcL2JyZWFrcG9pbnRcLmpzJC8udGVzdChtZXNzYWdl
T2JqZWN0LnBhcmFtcy51cmwpKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRm91
bmQgYnJlYWtwb2ludC5qcyIpOwotICAgICAgICAgICAgdmFyIHNjcmlwdElkZW50aWZpZXIgPSBt
ZXNzYWdlT2JqZWN0LnBhcmFtcy5zY3JpcHRJZDsKLSAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9
IHtzY3JpcHRJZDogc2NyaXB0SWRlbnRpZmllciwgbGluZU51bWJlcjogMTgsIGNvbHVtbk51bWJl
cjogMH07Ci0gICAgICAgICAgICB2YXIgb3B0aW9ucyA9IHsKLSAgICAgICAgICAgICAgICBhdXRv
Q29udGludWU6IHRydWUsCi0gICAgICAgICAgICAgICAgYWN0aW9uczogWwotICAgICAgICAgICAg
ICAgICAgICB7InR5cGUiOiAicHJvYmUiLCAiZGF0YSI6ICJhIiwgImlkIjogMX0sCi0gICAgICAg
ICAgICAgICAgICAgIHsidHlwZSI6ICJwcm9iZSIsICJkYXRhIjogImEiLCAiaWQiOiAyfQotICAg
ICAgICAgICAgICAgIF0KLSAgICAgICAgICAgIH07Ci0KLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnQiLCB7bG9jYXRpb246IGxvY2F0
aW9uLCBvcHRpb25zOiBvcHRpb25zfSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVzcG9uc2VPYmplY3QpOwot
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlJ1bm5pbmcgYnJlYWtwb2ludEFj
dGlvbnMgdG8gdHJpZ2dlciBwcm9iZSBzYW1wbGVzLiIpOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogImJy
ZWFrcG9pbnRBY3Rpb25zKDEyLCB7eDoxLHk6Mn0pIn0pOwotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogImJy
ZWFrcG9pbnRBY3Rpb25zKDEyLCB7eDoxLHk6Mn0pIn0pOwotICAgICAgICAgICAgfSk7Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIu
ZGlkU2FtcGxlUHJvYmUiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCi0gICAgewotICAgICAg
ICB2YXIgc2FtcGxlID0gUHJvYmVIZWxwZXIuc2ltcGxpZmllZFByb2JlU2FtcGxlKG1lc3NhZ2VP
YmplY3QpOwotICAgICAgICBzYW1wbGVzLnB1c2goc2FtcGxlKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIlJlY2VpdmVkIHByb2JlIHNhbXBsZSBwYXlsb2FkOiAiICsgSlNPTi5zdHJpbmdp
Znkoc2FtcGxlLnBheWxvYWQpKTsKLQotICAgICAgICBpZiAocmVjZWl2ZWRBbGxFeHBlY3RlZFNh
bXBsZXMoKSkgewotICAgICAgICAgICAgdGVzdHMuZm9yRWFjaChmdW5jdGlvbih0ZXN0KSB7Ci0g
ICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHRlc3QucHJlZGljYXRlKCk7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQocmVzdWx0LCB0ZXN0Lm1lc3NhZ2UpOwotICAgICAg
ICAgICAgICAgIGlmICghcmVzdWx0KQotICAgICAgICAgICAgICAgICAgICB0ZXN0LmVycm9yKCk7
Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0
KCk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KLTxwPkRlYnVnZ2VyLnNldEJyZWFrcG9pbnQgd2l0aCBtdWx0aXBsZSBw
cm9iZSBhY3Rpb25zIGF0IHRoZSBzYW1lIGJyZWFrcG9pbnQuIFRlc3QgRGVidWdnZXIuZGlkU2Ft
cGxlUHJvYmUgZXZlbnRzIGZvciB0aGUgcHJvYmUgc2FtcGxlcy48L3A+Ci08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIv
aGl0LWJyZWFrcG9pbnQtZnJvbS1jb25zb2xlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9oaXQtYnJlYWtwb2ludC1mcm9tLWNvbnNvbGUtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNzY2NDlkMjU3NWM0NzY4
YTk4NzIwYmQ1MTRhYWIwMTIxMmFlMTQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9o
aXQtYnJlYWtwb2ludC1mcm9tLWNvbnNvbGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsOCArMCwwIEBACi1EZWJ1Z2dlci5zZXRCcmVha3BvaW50IG9uIGxpbmU6MTggaW4gPHNjcmlw
dCBzcmM9InJlc291cmNlcy9icmVha3BvaW50LmpzIj4KLQotRm91bmQgYnJlYWtwb2ludC5qcwot
aW5zaWRlIGJyZWFrcG9pbnRBY3Rpb25zIGE6KDIpIGI6KFtvYmplY3QgT2JqZWN0XSkKLWluc2lk
ZSBicmVha3BvaW50QWN0aW9ucyBhOigxMikgYjooW29iamVjdCBPYmplY3RdKQotSGl0IEJyZWFr
cG9pbnQhCi1QQVNTCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9oaXQtYnJlYWtwb2ludC1mcm9tLWNvbnNvbGUuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9oaXQtYnJlYWtwb2ludC1mcm9tLWNvbnNvbGUu
aHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDJkNTVjNDk1ZGRjYzk5ZjM0ZTAx
NWYwNWQxMzM5MDYyNmY3OWFmMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvaGl0LWJy
ZWFrcG9pbnQtZnJvbS1jb25zb2xlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvYnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgp
Ci17Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30p
OwotCi0gICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNl
ZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIGlmICgvcmVzb3Vy
Y2VzXC9icmVha3BvaW50XC5qcyQvLnRlc3QobWVzc2FnZU9iamVjdC5wYXJhbXMudXJsKSkgewot
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZvdW5kIGJyZWFrcG9pbnQuanMiKTsKLSAg
ICAgICAgICAgIHZhciBzY3JpcHRJZGVudGlmaWVyID0gbWVzc2FnZU9iamVjdC5wYXJhbXMuc2Ny
aXB0SWQ7Ci0gICAgICAgICAgICB2YXIgbG9jYXRpb24gPSB7c2NyaXB0SWQ6IHNjcmlwdElkZW50
aWZpZXIsIGxpbmVOdW1iZXI6IDE4LCBjb2x1bW5OdW1iZXI6IDB9OwotICAgICAgICAgICAgdmFy
IG9wdGlvbnMgPSB7Ci0gICAgICAgICAgICAgICAgY29uZGl0aW9uOiAiYSA+IDEwIiwKLSAgICAg
ICAgICAgIH07Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dl
ci5zZXRCcmVha3BvaW50Iiwge2xvY2F0aW9uOiBsb2NhdGlvbiwgb3B0aW9uczogb3B0aW9uc30s
IGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jaGVja0ZvckVycm9yKHJlc3BvbnNlT2JqZWN0KTsKLSAgICAgICAgICAgICAgICAvLyBTaG91
bGQgTk9UIGhpdCBicmVha3BvaW50IChhIDwgMTApLgotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogImJyZWFr
cG9pbnRBY3Rpb25zKDIsIHt4OjEseToyfSkifSk7Ci0gICAgICAgICAgICAgICAgLy8gU2hvdWxk
IGhpdCBicmVha3BvaW50IChhID4gMTApLgotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
c2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogImJyZWFrcG9pbnRB
Y3Rpb25zKDEyLCB7eDoxLHk6Mn0pIn0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAg
ICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0g
PSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkhpdCBCcmVha3BvaW50ISIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUyIp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLQotfQotPC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5EZWJ1Z2dlci5z
ZXRCcmVha3BvaW50IG9uIGxpbmU6MTggaW4gJmx0O3NjcmlwdCBzcmM9InJlc291cmNlcy9icmVh
a3BvaW50LmpzIiZndDs8L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvbmVzdGVkLWluc3BlY3RvcnMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL25lc3RlZC1p
bnNwZWN0b3JzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjJj
MmRmNjNkOTg4NGQzMzM2OWVkM2E3NDU4YTg3MzgxOTdmMDhkZS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvbmVzdGVkLWluc3BlY3RvcnMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsNyArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogRXJyb3I6IFBBU1M6IEV4
cGVjdGVkIGV4Y2VwdGlvbgotQ2hlY2tpbmcgdGhhdCB0aGUgaW5zcGVjdG9yIGNvZGUgY2FuIGJl
IGRlYnVnZ2VkIHVzaW5nIGEgc2Vjb25kIGluc3BlY3RvciB3aW5kb3cuCi0KLURlYnVnZ2VyLnNl
dFBhdXNlT25FeGNlcHRpb25zIC0gYWxsCi1QQVNTOiBQYXVzZWQhCi1QQVNTOiBSZXN1bWVkIQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvbmVz
dGVkLWluc3BlY3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9uZXN0ZWQtaW5zcGVjdG9ycy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA2ZjE4YmRjMGQyMTFiMWJhNmQ4YTdkMDNjNjhiNTI4OWY2YzFlOTcxLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9ycy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNTQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2V4Y2VwdGlvbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVu
Y3Rpb24gdGVzdCgpCi17Ci0gICAgZnVuY3Rpb24gdGVzdEZ1bmN0aW9uKCkgewotICAgICAgICAv
LyBUaGlzIGZ1bmN0aW9uIHJ1bnMgaW4gdGhlIHNlY29uZCBpbnNwZWN0b3Igd2luZG93LiBXZSBj
YW4gdXNlIHRoaXMgb25lIHRvIGRlYnVnIHRoZSBmaXJzdCBpbnNwZWN0b3IuCi0KLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9u
cyIsIHtzdGF0ZTogImFsbCJ9LCBmdW5jdGlvbihyZXNwb25zZU9iamVjdCkgewotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKHJlc3BvbnNlT2JqZWN0KTsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyAtIGFs
bCIpOwotCi0gICAgICAgICAgICAvLyBUcmlnZ2VyIGFuIGV4Y2VwdGlvbiBpbiB0aGUgbWFpbiBp
bnNwZWN0b3IuCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1l
LmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0aHJvdyBu
ZXcgRXJyb3IoJ1BBU1M6IEV4cGVjdGVkIGV4Y2VwdGlvbicpIH0sIDApOyJ9KTsKLSAgICAgICAg
fSk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnBhdXNl
ZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKLSAgICAgICAgewotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIlBBU1M6IFBhdXNlZCEiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnJlc3VtZSIsIHt9KTsKLSAgICAgICAgfQotCi0gICAg
ICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5yZXN1bWVkIl0gPSBmdW5j
dGlvbihtZXNzYWdlT2JqZWN0KQotICAgICAgICB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZygiUEFTUzogUmVzdW1lZCEiKTsKLQotICAgICAgICAgICAgLy8gUmV2ZXJ0IERlYnVnZ2Vy
LnNldFBhdXNlT25FeGNlcHRpb25zIGFzIGl0IGNhbiBoYXZlIGFuIGltcGFjdCBvbiB0aGUgZm9s
bG93aW5nIHRlc3RzLgotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVi
dWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCB7c3RhdGU6ICJub25lIn0sIGZ1bmN0aW9uKHJl
c3BvbnNlT2JqZWN0KSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRl
c3QoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgfTsKLQotICAgIHdpbmRvdy5s
b2cgPSBJbnNwZWN0b3JUZXN0LmxvZy5iaW5kKEluc3BlY3RvclRlc3QpOwotICAgIHdpbmRvdy5j
bG9zZVRlc3QgPSBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLmNs
b3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCgpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBs
ZXRlVGVzdCgpOwotICAgIH0KLQotICAgIHZhciBzZWNvbmRJbnNwZWN0b3JGcm9udGVuZCA9IHdp
bmRvdy5pbnRlcm5hbHMub3BlbkR1bW15SW5zcGVjdG9yRnJvbnRlbmQoIlByb3RvY29sVGVzdFN0
dWIuaHRtbCIpOwotICAgIHNlY29uZEluc3BlY3RvckZyb250ZW5kLmFkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICBzZWNvbmRJbnNwZWN0b3JGcm9udGVu
ZC5wb3N0TWVzc2FnZSgiKCIgKyB0ZXN0RnVuY3Rpb24udG9TdHJpbmcoKSArIikoKTsiLCAiKiIp
OwotICAgIH0pOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Ci08cD5DaGVja2luZyB0aGF0IHRoZSBpbnNwZWN0b3IgY29kZSBjYW4gYmUgZGVidWdnZWQg
dXNpbmcgYSBzZWNvbmQgaW5zcGVjdG9yIHdpbmRvdy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvcGF1c2Ut
ZGVkaWNhdGVkLXdvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvcGF1c2UtZGVkaWNhdGVkLXdvcmtlci1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0MTIzOTQ2ZDBjOGM0ZmY0ZjIzMzI0ZjIyNmE5YTJj
YjZkOWI5Y2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3BhdXNlLWRlZGljYXRlZC13
b3JrZXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1TdGFydGVk
IHdvcmtlcgotV29ya2VyIGNyZWF0ZWQKLWRpZENvbm5lY3RUb1dvcmtlcgotU1VDQ0VTUzogV29y
a2VyIHBhdXNlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvcGF1c2UtZGVkaWNhdGVkLXdvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL3BhdXNlLWRlZGljYXRlZC13b3JrZXIuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTZmYmRhOGMzODMxM2Y0YzNjZjMwNmZkNGIwYmY5MTQ1
ZDIyOGYyNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvcGF1c2UtZGVkaWNhdGVkLXdv
cmtlci5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci12
YXIgd29ya2VyOwotZnVuY3Rpb24gc3RhcnRXb3JrZXJBbmRSdW5UZXN0KCkKLXsKLSAgICB3b3Jr
ZXIgPSBuZXcgV29ya2VyKCJyZXNvdXJjZXMvZGVkaWNhdGVkLXdvcmtlci5qcyIpOwotICAgIHdv
cmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgeyB9OwotICAgIHdvcmtlci5wb3N0TWVz
c2FnZSgxKTsKLSAgICBsb2coIlN0YXJ0ZWQgd29ya2VyIik7Ci0gICAgcnVuVGVzdCgpOwotfQot
Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgd29ya2VySWQ7Ci0gICAgdmFyIHdvcmtlclJl
cXVlc3RJZCA9IDE7Ci0gICAgZnVuY3Rpb24gc2VuZENvbW1hbmRUb1dvcmtlcihtZXRob2QsIHBh
cmFtcykKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIldvcmtlci5z
ZW5kTWVzc2FnZVRvV29ya2VyIiwgewotICAgICAgICAgICAgIndvcmtlcklkIjogd29ya2VySWQs
Ci0gICAgICAgICAgICAibWVzc2FnZSI6IHsKLSAgICAgICAgICAgICAgICAibWV0aG9kIjogbWV0
aG9kLAotICAgICAgICAgICAgICAgICJwYXJhbXMiOiBwYXJhbXMsCi0gICAgICAgICAgICAgICAg
ImlkIjogd29ya2VyUmVxdWVzdElkKysKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAg
fQotCi0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiV29ya2VyLmVuYWJsZSIsIHt9LCBm
dW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7Ci0gICAgICAgIGlmICgiZXJyb3IiIGluIG1lc3NhZ2VP
YmplY3QpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiBDb3VsZG4ndCBl
bmFibGUgd29ya2VyIGRlYnVnZ2VyOiAiICsgbWVzc2FnZU9iamVjdC5lcnJvci5tZXNzYWdlKTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgIH0KLSAg
ICB9KTsKLQotICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJXb3JrZXIud29ya2VyQ3Jl
YXRlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIHdvcmtlcklk
ID0gbWVzc2FnZU9iamVjdFsicGFyYW1zIl1bIndvcmtlcklkIl07Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJXb3JrZXIgY3JlYXRlZCIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRD
b21tYW5kKCJXb3JrZXIuY29ubmVjdFRvV29ya2VyIiwgeyAid29ya2VySWQiOiB3b3JrZXJJZCB9
LCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiZGlkQ29ubmVjdFRvV29ya2VyIik7Ci0gICAgICAgICAgICBzZW5kQ29tbWFuZFRvV29ya2Vy
KCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0gICAgICAgICAgICBzZW5kQ29tbWFuZFRvV29ya2Vy
KCJEZWJ1Z2dlci5wYXVzZSIsIHt9KTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgSW5zcGVj
dG9yVGVzdC5ldmVudEhhbmRsZXJbIldvcmtlci5kaXNwYXRjaE1lc3NhZ2VGcm9tV29ya2VyIl0g
PSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQotICAgIHsKLSAgICAgICAgdmFyIG1lc3NhZ2UgPSBt
ZXNzYWdlT2JqZWN0WyJwYXJhbXMiXVsibWVzc2FnZSJdOwotICAgICAgICBpZiAobWVzc2FnZVsi
bWV0aG9kIl0gPT09ICJEZWJ1Z2dlci5wYXVzZWQiKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiU1VDQ0VTUzogV29ya2VyIHBhdXNlZCIpOwotICAgICAgICAgICAgc2VuZENvbW1h
bmRUb1dvcmtlcigiRGVidWdnZXIuZGlzYWJsZSIsIHt9KTsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5IG9uTG9hZD0ic3RhcnRXb3JrZXJBbmRSdW5UZXN0KCk7Ij4KLTwvYm9keT4K
LTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9wYXVzZS1vbi1hc3NlcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL2RlYnVnZ2VyL3BhdXNlLW9uLWFzc2VydC1leHBlY3RlZC50eHQKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5YTliZjk4YjhmMWU5Nzk5NmZhMjk4ZjM5OGM2Y2NlN2Q0
ZTc3MTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3BhdXNlLW9uLWFzc2VydC1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTA6IFNob3VsZCBhbHdheXMgZmFpbC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMjog
QVNTRVJUIG1lc3NhZ2UKLVRlc3QgdGhhdCBhIGZhaWxpbmcgY29uc29sZS5hc3NlcnQgd2lsbCBw
YXVzZSBpbiB0aGUgZGVidWdnZXIgd2l0aCBhbiBvcHRpb25hbCBtZXNzYWdlLgotCi1TaG91bGQg
bm90IHBhdXNlIG9uIHBhc3NpbmcgYXNzZXJ0LgotaW5zaWRlIGFzc2VydE9rYXkKLVNob3VsZCBw
YXVzZSBvbiBmYWlsaW5nIGFzc2VydC4KLWluc2lkZSBhc3NlcnRGYWxzZQotUEFTUzogUGF1c2Vk
IQotU2hvdWxkIG5vdCBwYXVzZSBvbiBwYXNzaW5nIGFzc2VydC4KLWluc2lkZSBhc3NlcnRDb25k
aXRpb24sIGFuZCBjb25kaXRpb24gaXMgdHJ1ZQotU2hvdWxkIHBhdXNlIG9uIGZhaWxpbmcgYXNz
ZXJ0LgotaW5zaWRlIGFzc2VydENvbmRpdGlvbiwgYW5kIGNvbmRpdGlvbiBpcyBmYWxzZQotUEFT
UzogUGF1c2VkIQotU2hvdWxkIG5vdCBwYXVzZSBvbiBwYXNzaW5nIGFzc2VydC4KLWluc2lkZSBh
c3NlcnRDb25kaXRpb25XaXRoTWVzc2FnZSwgYW5kIGNvbmRpdGlvbiBpcyB0cnVlCi1TaG91bGQg
cGF1c2Ugb24gZmFpbGluZyBhc3NlcnQgYW5kIGluY2x1ZGUgYSBtZXNzYWdlLgotaW5zaWRlIGFz
c2VydENvbmRpdGlvbldpdGhNZXNzYWdlLCBhbmQgY29uZGl0aW9uIGlzIGZhbHNlCi1QQVNTOiBQ
YXVzZWQhCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9wYXVzZS1vbi1hc3NlcnQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9wYXVzZS1vbi1hc3NlcnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOWE4YTRjZWE3MjAzNmY3M2E2ZmNlNGRhYmVkZWQyZjlkYWE1ZmEwYS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvcGF1c2Utb24tYXNzZXJ0Lmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw4MCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvYXNzZXJ0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5j
dGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5l
bmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0
UGF1c2VPbkV4Y2VwdGlvbnMiLCB7c3RhdGU6ICJhbGwifSwgSW5zcGVjdG9yVGVzdC5jaGVja0Zv
ckVycm9yKTsKLQotICAgIHZhciBzdGVwID0gbnVsbDsKLSAgICB2YXIgc3RlcHMgPSBbCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIG1lc3NhZ2U6ICJTaG91bGQgbm90IHBhdXNlIG9uIHBhc3Npbmcg
YXNzZXJ0LiIsCi0gICAgICAgICAgICBldmFsdWF0ZTogImFzc2VydFRydWUoKSIsCi0gICAgICAg
ICAgICBwYXVzZTogZmFsc2UsCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgIG1l
c3NhZ2U6ICJTaG91bGQgcGF1c2Ugb24gZmFpbGluZyBhc3NlcnQuIiwKLSAgICAgICAgICAgIGV2
YWx1YXRlOiAiYXNzZXJ0RmFsc2UoKSIsCi0gICAgICAgICAgICBwYXVzZTogdHJ1ZSwKLSAgICAg
ICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgbWVzc2FnZTogIlNob3VsZCBub3QgcGF1c2Ug
b24gcGFzc2luZyBhc3NlcnQuIiwKLSAgICAgICAgICAgIGV2YWx1YXRlOiAiYXNzZXJ0Q29uZGl0
aW9uKHdpbmRvdykiLAotICAgICAgICAgICAgcGF1c2U6IGZhbHNlLAotICAgICAgICB9LAotICAg
ICAgICB7Ci0gICAgICAgICAgICBtZXNzYWdlOiAiU2hvdWxkIHBhdXNlIG9uIGZhaWxpbmcgYXNz
ZXJ0LiIsCi0gICAgICAgICAgICBldmFsdWF0ZTogImFzc2VydENvbmRpdGlvbih3aW5kb3cgPT09
IG51bGwpIiwKLSAgICAgICAgICAgIHBhdXNlOiB0cnVlLAotICAgICAgICB9LAotICAgICAgICB7
Ci0gICAgICAgICAgICBtZXNzYWdlOiAiU2hvdWxkIG5vdCBwYXVzZSBvbiBwYXNzaW5nIGFzc2Vy
dC4iLAotICAgICAgICAgICAgZXZhbHVhdGU6ICJhc3NlcnRDb25kaXRpb25XaXRoTWVzc2FnZSh3
aW5kb3csICdTaG91bGQgbm90IGhhcHBlbicpIiwKLSAgICAgICAgICAgIHBhdXNlOiBmYWxzZSwK
LSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgbWVzc2FnZTogIlNob3VsZCBwYXVz
ZSBvbiBmYWlsaW5nIGFzc2VydCBhbmQgaW5jbHVkZSBhIG1lc3NhZ2UuIiwKLSAgICAgICAgICAg
IGV2YWx1YXRlOiAiYXNzZXJ0Q29uZGl0aW9uV2l0aE1lc3NhZ2Uod2luZG93ID09PSBudWxsLCAn
QVNTRVJUIG1lc3NhZ2UnKSIsCi0gICAgICAgICAgICBwYXVzZTogdHJ1ZSwKLSAgICAgICAgfSwK
LSAgICBdOwotCi0gICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnBhdXNl
ZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIGlmIChzdGVwLnBh
dXNlKQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1M6IFBhdXNlZCEiKTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6IFBhdXNlZCB3
aGVuIHVuZXhwZWN0ZWQiKTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJE
ZWJ1Z2dlci5yZXN1bWUiLCB7fSwgcnVuTmV4dFN0ZXApOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IHJ1bk5leHRTdGVwKCkgewotICAgICAgICBzdGVwID0gc3RlcHMuc2hpZnQoKTsKLSAgICAgICAg
aWYgKCFzdGVwKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gRXZhbHV0ZSB0aGUg
Y29tbWFuZCBpbnNpZGUgYSBzZXRUaW1lb3V0IHNvIHRoYXQgd2UgY2FuIGhpdCBleGNlcHRpb25z
IGFuZCBicmVhay4KLSAgICAgICAgLy8gT3RoZXJ3aXNlLCBldmFsdWF0aW5nIHRocm91Z2ggUnVu
dGltZUFnZW50IHdpbGwgbm90IHRyaWdnZXIgYSBwYXVzZS4KLSAgICAgICAgLy8gTGlrZXdpc2Us
IGlmIG5vIHBhdXNlIGlzIGV4cGVjdGVkIHdhaXQgZm9yIGEgYml0IGJlZm9yZSBjb250aW51aW5n
LgotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhzdGVwLm1lc3NhZ2UpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCl7IiArIHN0ZXAuZXZhbHVhdGUgKyAifSwgMCkifSwgZnVuY3Rp
b24ocmVzcG9uc2VPYmplY3QpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JF
cnJvcihyZXNwb25zZU9iamVjdCk7Ci0gICAgICAgICAgICBpZiAoIXN0ZXAucGF1c2UpCi0gICAg
ICAgICAgICAgICAgc2V0VGltZW91dChydW5OZXh0U3RlcCwgMjApOwotICAgICAgICB9KTsKLSAg
ICB9Ci0KLSAgICBydW5OZXh0U3RlcCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0IHRoYXQgYSBmYWlsaW5nIGNvbnNvbGUuYXNzZXJ0
IHdpbGwgcGF1c2UgaW4gdGhlIGRlYnVnZ2VyIHdpdGggYW4gb3B0aW9uYWwgbWVzc2FnZS48L3A+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvcmVncmVzcy0xMzMxODItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3JlZ3Jlc3MtMTMzMTgyLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzVmZGY3MmRiNDllYjE1OTIyYzVkZGM5NzU1
NWNmNzQyMGYwMGZkMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvcmVncmVzcy0xMzMx
ODItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDQ3OiBbMV0gVGVzdGluZyBzdGF0ZW1lbnQgJyh7fSkuYS5iLmMuZDsnCi1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgNDg6IFsxXSBQYXVzZWQgYW5kIGFib3V0IHRvIHN0ZXAKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSA2MDogWzFdIFJlc3VtZWQKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSA1MjogWzFdIFBhdXNlZCBhZnRlciBzdGVwcGluZwotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDYw
OiBbMV0gUmVzdW1lZAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFR5cGVFcnJvcjogdW5kZWZp
bmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJyh7fSkuYS5iJykKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSA0NzogWzJdIFRlc3Rpbmcgc3RhdGVtZW50ICdleGNlcHRpb25CYXNpYygpOycK
LUNPTlNPTEUgTUVTU0FHRTogbGluZSA0ODogWzJdIFBhdXNlZCBhbmQgYWJvdXQgdG8gc3RlcAot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDYwOiBbMl0gUmVzdW1lZAotQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDUyOiBbMl0gUGF1c2VkIGFmdGVyIHN0ZXBwaW5nCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUg
NjA6IFsyXSBSZXN1bWVkCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzogVHlwZUVycm9yOiB1bmRl
ZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnKHt9KS5hLmInKQotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDQ3OiBbM10gVGVzdGluZyBzdGF0ZW1lbnQgJ2V4Y2VwdGlvbkRPTSgpOycK
LUNPTlNPTEUgTUVTU0FHRTogbGluZSA0ODogWzNdIFBhdXNlZCBhbmQgYWJvdXQgdG8gc3RlcAot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDYwOiBbM10gUmVzdW1lZAotQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDUyOiBbM10gUGF1c2VkIGFmdGVyIHN0ZXBwaW5nCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUg
NjA6IFszXSBSZXN1bWVkCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgODogTm90Rm91bmRFcnJvcjog
RE9NIEV4Y2VwdGlvbiA4OiBBbiBhdHRlbXB0IHdhcyBtYWRlIHRvIHJlZmVyZW5jZSBhIE5vZGUg
aW4gYSBjb250ZXh0IHdoZXJlIGl0IGRvZXMgbm90IGV4aXN0LgotQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDQ3OiBbNF0gVGVzdGluZyBzdGF0ZW1lbnQgJ2V4Y2VwdGlvbkluSG9zdEZ1bmN0aW9uKCk7
JwotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ4OiBbNF0gUGF1c2VkIGFuZCBhYm91dCB0byBzdGVw
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjA6IFs0XSBSZXN1bWVkCi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgNTI6IFs0XSBQYXVzZWQgYWZ0ZXIgc3RlcHBpbmcKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSA2MDogWzRdIFJlc3VtZWQKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyNDogZXhjZXB0aW9uIGlu
IGhvc3QgZnVuY3Rpb24KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0NzogWzVdIFRlc3Rpbmcgc3Rh
dGVtZW50ICd0aHJvd1N0cmluZygpOycKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0ODogWzVdIFBh
dXNlZCBhbmQgYWJvdXQgdG8gc3RlcAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDYwOiBbNV0gUmVz
dW1lZAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUyOiBbNV0gUGF1c2VkIGFmdGVyIHN0ZXBwaW5n
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjA6IFs1XSBSZXN1bWVkCi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTM6IGV4Y2VwdGlvbiBzdHJpbmcKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0NzogWzZd
IFRlc3Rpbmcgc3RhdGVtZW50ICd0aHJvd1BhcmFtKHt4OjF9KTsnCi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgNDg6IFs2XSBQYXVzZWQgYW5kIGFib3V0IHRvIHN0ZXAKLUNPTlNPTEUgTUVTU0FHRTog
bGluZSA2MDogWzZdIFJlc3VtZWQKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA1MjogWzZdIFBhdXNl
ZCBhZnRlciBzdGVwcGluZwotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDYwOiBbNl0gUmVzdW1lZAot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBbb2JqZWN0IE9iamVjdF0KLUNPTlNPTEUgTUVTU0FH
RTogbGluZSA0NzogWzddIFRlc3Rpbmcgc3RhdGVtZW50ICd0aHJvd1BhcmFtKG5ldyBFcnJvcign
ZXJyb3IgbWVzc2FnZScpKTsnCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDg6IFs3XSBQYXVzZWQg
YW5kIGFib3V0IHRvIHN0ZXAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA2MDogWzddIFJlc3VtZWQK
LUNPTlNPTEUgTUVTU0FHRTogbGluZSA1MjogWzddIFBhdXNlZCBhZnRlciBzdGVwcGluZwotQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDYwOiBbN10gUmVzdW1lZAotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDE4OiBFcnJvcjogZXJyb3IgbWVzc2FnZQotUmVncmVzc2lvbiB0ZXN0IGZvciBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMTgyCi0KLVN0ZXBwaW5nIGFmdGVyIGJy
ZWFraW5nIG9uIHVuY2F1Z2h0IGV4Y2VwdGlvbnMgc2hvdWxkIG5vdCBjcmFzaAotCi1QQVNTIC0g
cGF1c2VkIGZvciBlYWNoIHVuY2F1Z2h0IGV4Y2VwdGlvbgotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvcmVncmVzcy0xMzMxODIuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZWdyZXNzLTEzMzE4Mi5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlOTEyMGUwYTE1OTY3NjcyZjMxYzk3ZDVm
ZDAwMTg5YjI0ZGExNTk3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZWdyZXNzLTEz
MzE4Mi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9j
b2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2V4Y2VwdGlvbi5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIGV4cGVj
dFBhdXNlID0gZmFsc2U7Ci0gICAgdmFyIGlzU3RlcHBpbmcgPSBmYWxzZTsKLQotICAgIHZhciB0
ZXN0SW5kZXggPSAwOwotICAgIHZhciBzdGF0ZW1lbnRzV2l0aFVuY2F1Z2h0RXhjZXB0aW9ucyA9
IFsKLSAgICAgICAgIih7fSkuYS5iLmMuZDsiLAotICAgICAgICAiZXhjZXB0aW9uQmFzaWMoKTsi
LAotICAgICAgICAiZXhjZXB0aW9uRE9NKCk7IiwKLSAgICAgICAgImV4Y2VwdGlvbkluSG9zdEZ1
bmN0aW9uKCk7IiwKLSAgICAgICAgInRocm93U3RyaW5nKCk7IiwKLSAgICAgICAgInRocm93UGFy
YW0oe3g6MX0pOyIsCi0gICAgICAgICJ0aHJvd1BhcmFtKG5ldyBFcnJvcignZXJyb3IgbWVzc2Fn
ZScpKTsiCi0gICAgXTsKLQotICAgIGZ1bmN0aW9uIHRyaWdnZXJOZXh0VW5jYXVnaHRFeGNlcHRp
b24oKQotICAgIHsKLSAgICAgICAgLy8gRXZhbHVhdGUgc3RhdGVtZW50IGFuZCBleHBlY3QgdG8g
cGF1c2UuCi0gICAgICAgIGlmICh0ZXN0SW5kZXggPCBzdGF0ZW1lbnRzV2l0aFVuY2F1Z2h0RXhj
ZXB0aW9ucy5sZW5ndGgpIHsKLSAgICAgICAgICAgIHZhciBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRz
V2l0aFVuY2F1Z2h0RXhjZXB0aW9uc1t0ZXN0SW5kZXgrK107Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeyAiICsgc3RhdGVtZW50ICsgIiB9LCAwKTsifSk7Ci0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBEb25lIGV2YWx1YXRpbmcgc3Rh
dGVtZW50cyB0byBwYXVzZS4gRXZhbHVhdGUgc29tZSBtb3JlIHdlIGRvIG5vdCBleHBlY3QgdG8g
cGF1c2UuCi0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTIC0gcGF1c2VkIGZvciBlYWNo
IHVuY2F1Z2h0IGV4Y2VwdGlvbiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVu
YWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRQ
YXVzZU9uRXhjZXB0aW9ucyIsIHtzdGF0ZTogInVuY2F1Z2h0In0sIGZ1bmN0aW9uKHJlc3BvbnNl
T2JqZWN0KSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9i
amVjdCk7Ci0gICAgICAgIGV4cGVjdFBhdXNlID0gdHJ1ZTsKLSAgICAgICAgdHJpZ2dlck5leHRV
bmNhdWdodEV4Y2VwdGlvbigpOwotICAgIH0pOwotCi0gICAgSW5zcGVjdG9yVGVzdC5ldmVudEhh
bmRsZXJbIkRlYnVnZ2VyLnBhdXNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKLSAgICB7
Ci0gICAgICAgIGlmICghZXhwZWN0UGF1c2UpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJGQUlMIC0gZGVidWdnZXIgcGF1c2VkIHdoZW4gd2UgZGlkIG5vdCBleHBlY3QgdG8iKTsK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIWlzU3RlcHBpbmcpIHsKLSAgICAgICAg
ICAgIGNvbnNvbGUubG9nKCJbIiArIHRlc3RJbmRleCArICJdIFRlc3Rpbmcgc3RhdGVtZW50ICci
ICsgc3RhdGVtZW50c1dpdGhVbmNhdWdodEV4Y2VwdGlvbnNbdGVzdEluZGV4IC0gMV0gKyAiJyIp
OwotICAgICAgICAgICAgY29uc29sZS5sb2coIlsiICsgdGVzdEluZGV4ICsgIl0gUGF1c2VkIGFu
ZCBhYm91dCB0byBzdGVwIik7Ci0gICAgICAgICAgICBpc1N0ZXBwaW5nID0gdHJ1ZTsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnN0ZXBPdmVyIiwge30p
OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgY29uc29sZS5sb2coIlsiICsgdGVzdElu
ZGV4ICsgIl0gUGF1c2VkIGFmdGVyIHN0ZXBwaW5nIik7Ci0gICAgICAgICAgICBpc1N0ZXBwaW5n
ID0gZmFsc2U7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dl
ci5yZXN1bWUiLCB7fSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmV2
ZW50SGFuZGxlclsiRGVidWdnZXIucmVzdW1lZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkK
LSAgICB7Ci0gICAgICAgIGNvbnNvbGUubG9nKCJbIiArIHRlc3RJbmRleCArICJdIFJlc3VtZWQi
KTsKLSAgICAgICAgaWYgKCFpc1N0ZXBwaW5nKQotICAgICAgICAgICAgdHJpZ2dlck5leHRVbmNh
dWdodEV4Y2VwdGlvbigpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgotPHA+UmVncmVzc2lvbiB0ZXN0IGZvciBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMTgyPC9wPgotPHA+U3RlcHBpbmcgYWZ0ZXIgYnJl
YWtpbmcgb24gdW5jYXVnaHQgZXhjZXB0aW9ucyBzaG91bGQgbm90IGNyYXNoPC9wPgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL3JlbW92ZUJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkOTA2MDUwMWVhYzhkNjQzYWU0YmM2MzVmZDEyZGNl
MTAzOTQ3ZjNiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50
LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLURlYnVnZ2VyLnJl
bW92ZUJyZWFrcG9pbnQKLQotRm91bmQgYnJlYWtwb2ludC5qcwotU2V0IEJyZWFrcG9pbnQsIFRy
aWdnZXJpbmcgaXQKLWluc2lkZSBicmVha3BvaW50QmFzaWMKLUhpdCBCcmVha3BvaW50IQotUmVz
dW1lZCwgUmVtb3ZpbmcgQnJlYWtwb2ludCBhbmQgdHJ5aW5nIHRvIHRyaWdnZXIgaXQgYWdhaW4K
LWluc2lkZSBicmVha3BvaW50QmFzaWMKLVBBU1M6IGRpZCBub3QgaGl0IGJyZWFrcG9pbnQgYWZ0
ZXIgcmVtb3ZpbmcgaXQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvcmVtb3ZlQnJlYWtwb2ludC5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3M2M4NjBkZjFlMGFjYjFjZjUxOTAyMjEzMjBiNGEzNDZkMTcwMDg4
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50Lmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOwotCi0gICAgdmFyIGJyZWFrcG9pbnRUcmlnZ2Vy
ZWQgPSAwOwotCi0gICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlw
dFBhcnNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIGlmICgv
cmVzb3VyY2VzXC9icmVha3BvaW50XC5qcyQvLnRlc3QobWVzc2FnZU9iamVjdC5wYXJhbXMudXJs
KSkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZvdW5kIGJyZWFrcG9pbnQuanMi
KTsKLSAgICAgICAgICAgIHZhciBzY3JpcHRJZGVudGlmaWVyID0gbWVzc2FnZU9iamVjdC5wYXJh
bXMuc2NyaXB0SWQ7Ci0gICAgICAgICAgICB2YXIgbG9jYXRpb24gPSB7c2NyaXB0SWQ6IHNjcmlw
dElkZW50aWZpZXIsIGxpbmVOdW1iZXI6IDMsIGNvbHVtbk51bWJlcjogMH07Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50Iiwge2xv
Y2F0aW9uOiBsb2NhdGlvbn0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7Ci0gICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKHJlc3BvbnNlT2JqZWN0KTsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU2V0IEJyZWFrcG9pbnQsIFRyaWdnZXJpbmcg
aXQiKTsKLSAgICAgICAgICAgICAgICBicmVha3BvaW50SWRlbnRpZmllciA9IHJlc3BvbnNlT2Jq
ZWN0LnJlc3VsdC5icmVha3BvaW50SWQ7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAiYnJlYWtwb2ludEJh
c2ljKCkifSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEluc3Bl
Y3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1bmN0aW9uKG1lc3Nh
Z2VPYmplY3QpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiSGl0IEJyZWFrcG9p
bnQhIik7Ci0gICAgICAgICsrYnJlYWtwb2ludFRyaWdnZXJlZDsKLQotICAgICAgICBpZiAoYnJl
YWtwb2ludFRyaWdnZXJlZCA9PT0gMSkKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENv
bW1hbmQoIkRlYnVnZ2VyLnJlc3VtZSIsIHt9KTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDogc2hvdWxkIG5vdCBoYXZlIGhpdCBicmVha3BvaW50
IGFmdGVyIGl0IHdhcyByZW1vdmVkLiIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QuZXZlbnRI
YW5kbGVyWyJEZWJ1Z2dlci5yZXN1bWVkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQotICAg
IHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlJlc3VtZWQsIFJlbW92aW5nIEJyZWFrcG9p
bnQgYW5kIHRyeWluZyB0byB0cmlnZ2VyIGl0IGFnYWluIik7Ci0gICAgICAgIEluc3BlY3RvclRl
c3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnJlbW92ZUJyZWFrcG9pbnQiLCB7ImJyZWFrcG9pbnRJ
ZCI6IGJyZWFrcG9pbnRJZGVudGlmaWVyfSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwg
e2V4cHJlc3Npb246ICJicmVha3BvaW50QmFzaWMoKSJ9LCBmdW5jdGlvbihyZXNwb25zZU9iamVj
dCkgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25z
ZU9iamVjdCk7Ci0gICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1M6IGRpZCBub3QgaGl0IGJyZWFr
cG9pbnQgYWZ0ZXIgcmVtb3ZpbmcgaXQuIik7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICAgICAgfSwgNTApOwotICAgICAgICAg
ICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgotPHA+RGVidWdnZXIucmVtb3ZlQnJlYWtwb2ludDwvcD4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9yZXNvdXJjZXMvYXNzZXJ0LmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL3Jlc291cmNlcy9hc3NlcnQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDIwNzM0ZTZlMDRiOTdjZWI2NTdkODMwODBiZmJjYzJlYTYwMmU1NjAuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Jlc291cmNlcy9hc3NlcnQuanMKKysrIC9kZXYvbnVs
bApAQCAtMSwyMyArMCwwIEBACi1mdW5jdGlvbiBhc3NlcnRUcnVlKCkKLXsKLSAgICBsb2coImlu
c2lkZSBhc3NlcnRPa2F5Iik7Ci0gICAgY29uc29sZS5hc3NlcnQodHJ1ZSwgIlNob3VsZCBuZXZl
ciBoYXBwZW4uIik7Ci19Ci0KLWZ1bmN0aW9uIGFzc2VydEZhbHNlKCkKLXsKLSAgICBsb2coImlu
c2lkZSBhc3NlcnRGYWxzZSIpOwotICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAiU2hvdWxkIGFs
d2F5cyBmYWlsLiIpOwotfQotCi1mdW5jdGlvbiBhc3NlcnRDb25kaXRpb24oY29uZGl0aW9uKQot
ewotICAgIGxvZygiaW5zaWRlIGFzc2VydENvbmRpdGlvbiwgYW5kIGNvbmRpdGlvbiBpcyAiICsg
ISFjb25kaXRpb24pOwotICAgIGNvbnNvbGUuYXNzZXJ0KGNvbmRpdGlvbik7Ci19Ci0KLWZ1bmN0
aW9uIGFzc2VydENvbmRpdGlvbldpdGhNZXNzYWdlKGNvbmRpdGlvbiwgbWVzc2FnZSkKLXsKLSAg
ICBsb2coImluc2lkZSBhc3NlcnRDb25kaXRpb25XaXRoTWVzc2FnZSwgYW5kIGNvbmRpdGlvbiBp
cyAiICsgISFjb25kaXRpb24pOwotICAgIGNvbnNvbGUuYXNzZXJ0KGNvbmRpdGlvbiwgbWVzc2Fn
ZSk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvcmVzb3VyY2VzL2JyZWFrcG9pbnQuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvcmVzb3VyY2VzL2JyZWFrcG9pbnQuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDFjZTA1MjAxYjNjZDZjYjE2MTZiNzgwMDQwMDA5NDc0MTZiNzUwNDQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Jlc291cmNlcy9icmVha3BvaW50LmpzCisrKyAvZGV2
L251bGwKQEAgLTEsMTE1ICswLDAgQEAKLWZ1bmN0aW9uIGJyZWFrcG9pbnRCYXNpYygpCi17Ci0g
ICAgbG9nKCJpbnNpZGUgYnJlYWtwb2ludEJhc2ljIik7Ci19Ci0KLWZ1bmN0aW9uIGJyZWFrcG9p
bnRXaXRoQ29uZGl0aW9uKGEsIGIpCi17Ci0gICAgbG9nKCJpbnNpZGUgYnJlYWtwb2ludFdpdGhD
b25kaXRpb24gYTooIiArIGEgKyAiKSBiOigiICsgYiArICIpIGErYjooIiArIChhK2IpICsgIiki
KTsKLX0KLQotZnVuY3Rpb24gYnJlYWtwb2ludEF1dG9tYXRpY2FsbHlDb250aW51ZSgpCi17Ci0g
ICAgbG9nKCJpbnNpZGUgYnJlYWtwb2ludEF1dG9tYXRpY2FsbHlDb250aW51ZSIpOwotfQotCi1m
dW5jdGlvbiBicmVha3BvaW50QWN0aW9ucyhhLCBiKQotewotICAgIGxvZygiaW5zaWRlIGJyZWFr
cG9pbnRBY3Rpb25zIGE6KCIgKyBhICsgIikgYjooIiArIGIgKyAiKSIpOwotfQotCi1mdW5jdGlv
biBub3RJbmxpbmVhYmxlKHgpCi17Ci0gICAgdmFyIGZ1bmMgPSBuZXcgRnVuY3Rpb24oInJldHVy
biB4ICsgMTAwOyIpOwotICAgIHJldHVybiB4ICsgMzsKLX0KLQotZnVuY3Rpb24gaW5saW5lYWJs
ZSh4KQotewotICAgIHJldHVybiB4ICsgNTsKLX0KLQotZnVuY3Rpb24gbm90SW5saW5pbmdGb28o
eCkKLXsKLSAgICByZXR1cm4gbm90SW5saW5lYWJsZSh4KTsKLX0KLQotZnVuY3Rpb24gaW5saW5p
bmdGb28oeCkKLXsKLSAgICByZXR1cm4gaW5saW5lYWJsZSh4KTsKLX0KLQotZnVuY3Rpb24gZGZn
V2l0aG91dElubGluZSgpCi17Ci0gICAgdmFyIGk7Ci0gICAgdmFyIHJlc3VsdCA9IDA7Ci0gICAg
Zm9yIChpID0gMDsgaSA8IDEwMDA7IGkrKykKLSAgICAgICAgcmVzdWx0ICs9IG5vdElubGluaW5n
Rm9vKGkpOwotICAgIGxvZygiZGZnV2l0aG91dElubGluZSByZXN1bHQ6ICIgKyByZXN1bHQpOyAg
ICAKLX0KLQotZnVuY3Rpb24gZGZnV2l0aElubGluZSgpCi17Ci0gICAgdmFyIGk7Ci0gICAgdmFy
IHJlc3VsdCA9IDA7Ci0gICAgZm9yIChpID0gMDsgaSA8IDEwMDA7IGkrKykKLSAgICAgICAgcmVz
dWx0ICs9IGlubGluaW5nRm9vKGkpOwotICAgIGxvZygiZGZnV2l0aElubGluZSByZXN1bHQ6ICIg
KyByZXN1bHQpOyAgICAKLX0KLQotZnVuY3Rpb24gbm90SW5saW5lYWJsZTIoeCwgY2FsbEZ1bmN0
aW9uV2l0aEJyZWFrcG9pbnQpCi17Ci0gICAgdmFyIGZ1bmMgPSBuZXcgRnVuY3Rpb24oInJldHVy
biB4ICsgMTAwOyIpOwotICAgIGlmIChjYWxsRnVuY3Rpb25XaXRoQnJlYWtwb2ludCkKLSAgICAg
ICAgYnJlYWtwb2ludEJhc2ljKCk7Ci0gICAgcmV0dXJuIHggKyAzOwotfQotCi1mdW5jdGlvbiBk
ZmdXaXRob3V0SW5saW5lMigpCi17Ci0gICAgdmFyIGk7Ci0gICAgdmFyIHJlc3VsdCA9IDA7Ci0g
ICAgZm9yIChpID0gMDsgaSA8IDEwMDA7IGkrKykKLSAgICAgICAgcmVzdWx0ICs9IG5vdElubGlu
ZWFibGUyKGksIGZhbHNlKTsKLSAgICBsb2coInJlc3VsdDogIiArIHJlc3VsdCk7Ci19Ci0KLWZ1
bmN0aW9uIGNhbGxOb3RJbmxpbmVhYmxlMigpCi17Ci0gICAgdmFyIHJlc3VsdCA9IG5vdElubGlu
ZWFibGUyKDEwMDAwLCB0cnVlKTsKLSAgICBpZiAocmVzdWx0ID09IDIwMDAzKQotICAgICAgICBs
b2coIlBBU1M6IHJlc3VsdCBpcyAiICsgcmVzdWx0KTsKLSAgICBlbHNlCi0gICAgICAgIGxvZygi
RkFJTDogcmVzdWx0IGlzICIgKyByZXN1bHQgKyAiLCBleHBlY3RpbmcgMjAwMDMiKTsKLX0KLQot
ZnVuY3Rpb24gZGVidWdnZXJTdGF0ZW1lbnQoeCkKLXsKLSAgICBsb2coIkluIGZ1bmN0aW9uIHdp
dGggZGVidWdnZXIgc3RhdGVtZW50Iik7Ci0gICAgZGVidWdnZXI7Ci0gICAgbG9nKCJBZnRlciBk
ZWJ1Z2dlciBzdGF0ZW1lbnQiKTsKLSAgICByZXR1cm4geCArIDM7Ci19Ci0KLWZ1bmN0aW9uIG5v
dElubGluZWFibGUzKHgpCi17Ci0gICAgdmFyIGZ1bmMgPSBuZXcgRnVuY3Rpb24oInJldHVybiB4
ICsgMTAwOyIpOwotICAgIGlmICh4ID09IDE5OTkpCi0gICAgICAgIGJyZWFrcG9pbnRCYXNpYygp
OwotICAgIHJldHVybiB4ICsgMzsKLX0KLQotdmFyIGdsb2JhbFZhbDMgPSAwOwotCi1mdW5jdGlv
biBkZmdXaXRob3V0SW5saW5lMygpCi17Ci0gICAgZ2xvYmFsVmFsMyA9IDA7Ci0gICAgdmFyIGk7
Ci0gICAgdmFyIHJlc3VsdCA9IDA7Ci0gICAgdmFyIGxvY2FsVmFsMyA9IDA7Ci0gICAgZm9yIChp
ID0gMDsgaSA8IDIwMDA7IGkrKykKLSAgICAgICAgcmVzdWx0ICs9IG5vdElubGluZWFibGUzKGkp
OwotICAgIGlmIChnbG9iYWxWYWwzKQotICAgICAgICByZXN1bHQgPSBnbG9iYWxWYWwzICsgbG9j
YWxWYWwzOwotICAgIGxvZygicmVzdWx0OiAiICsgcmVzdWx0KTsKLX0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZXNvdXJjZXMvZGVkaWNhdGVk
LXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZXNv
dXJjZXMvZGVkaWNhdGVkLXdvcmtlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NmUxZjA1NWQzZWI1MGRhZGI5YTgyYjljZGExZDkwMDM2NjI1NzU4Yy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvcmVzb3VyY2VzL2RlZGljYXRlZC13b3JrZXIuanMKKysrIC9kZXYvbnVs
bApAQCAtMSw5ICswLDAgQEAKLXZhciBtZXNzYWdlX2lkID0gMTsKLW9ubWVzc2FnZSA9IGZ1bmN0
aW9uKGV2ZW50KSB7Ci0gIGRvV29yaygpOwotfTsKLQotZnVuY3Rpb24gZG9Xb3JrKCkgewotICBw
b3N0TWVzc2FnZSgiTWVzc2FnZSAjIiArIG1lc3NhZ2VfaWQrKyk7Ci0gIHNldFRpbWVvdXQoZG9X
b3JrLCA1MCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvcmVzb3VyY2VzL2V4Y2VwdGlvbi5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9yZXNvdXJjZXMvZXhjZXB0aW9uLmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhMDE0ZjRiYWM5NTgyNDk2MzNlNmY5MzlhYjQ4NmM2YmJhM2UyY2QzLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZXNvdXJjZXMvZXhjZXB0aW9uLmpzCisrKyAv
ZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotZnVuY3Rpb24gZXhjZXB0aW9uQmFzaWMoKQotewot
ICAgICh7fSkuYS5iLmMuZDsKLX0KLQotZnVuY3Rpb24gZXhjZXB0aW9uRE9NKCkKLXsKLSAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKDApOwotfQotCi1mdW5jdGlvbiB0aHJvd1N0cmluZygp
Ci17Ci0gICAgdGhyb3cgImV4Y2VwdGlvbiBzdHJpbmciOwotfQotCi1mdW5jdGlvbiB0aHJvd1Bh
cmFtKG8pCi17Ci0gICAgdGhyb3cgbzsKLX0KLQotZnVuY3Rpb24gZXhjZXB0aW9uSW5Ib3N0RnVu
Y3Rpb24oKQotewotICAgIFsxXS5tYXAoZnVuY3Rpb24oeCkgewotICAgICAgICB0aHJvdyAiZXhj
ZXB0aW9uIGluIGhvc3QgZnVuY3Rpb24iOwotICAgIH0pOwotfQotCi1mdW5jdGlvbiBjYXRjaE5l
c3RlZChmdW5jLCBkZXB0aCAvKiBvcHRpb25hbEFyZ3NUb0Z1bmMuLi4gKi8pCi17Ci0gICAgaWYg
KGRlcHRoID4gMSkgewotICAgICAgICB2YXIgYXJncyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5j
YWxsKGFyZ3VtZW50cywgMCk7Ci0gICAgICAgIC0tYXJnc1sxXTsKLSAgICAgICAgY2F0Y2hOZXN0
ZWQuYXBwbHkodGhpcywgYXJncyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgdHJ5IHsKLSAgICAg
ICAgICAgIGZ1bmMuYXBwbHkodGhpcywgQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1l
bnRzLCAyKSk7Ci0gICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgIGNvbnNvbGUubG9n
KCJjYXRjaE5lc3RlZCBjYXVnaHQgZXhjZXB0aW9uOiAiICsgSlNPTi5zdHJpbmdpZnkoZSkpOwot
ICAgICAgICB9Ci0gICAgfQotfQotCi1mdW5jdGlvbiBub0V4Y2VwdGlvbigpCi17Ci0gICAgcmV0
dXJuICJubyBleGNlcHRpb24iOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL2RlYnVnZ2VyL3Jlc291cmNlcy9tYWMtbGluZWJyZWFrcy5qcyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZXNvdXJjZXMvbWFjLWxpbmVicmVha3Mu
anMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2YjYwMmNmMWRlMTFmMzIzMGY5MzBm
ODBlNjI0ZTQ1YzA1NmUxZWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Jlc291cmNl
cy9tYWMtbGluZWJyZWFrcy5qcworKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLS8vIHRlc3Qg
b25lDS8vIA0vLyAgdGVzdCB0d28NDWZ1bmN0aW9uIGJvbygpDXsNICAgIC8vICAgdGVzdCB0aHJl
ZSB0ZXN0IGZvdXINfQ0NLy8gdGVzdCBubyBuZXdsaW5lClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3Jlc291cmNlcy9taXhlZC1saW5lYnJlYWtzLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL3Jlc291cmNlcy9taXhlZC1saW5lYnJlYWtzLmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBhMmQxMDliMTZjMWU3Yzc1YTAwYWI3OWM2MmQ5MTE2MWM5OTE4
MjI5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZXNvdXJjZXMvbWl4ZWQtbGluZWJy
ZWFrcy5qcworKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotLy8gdGVzdCBvbmUKLQ0KLS8v
IHRlc3QgdHdvDQ0KLWZ1bmN0aW9uIGJheigpCi17DQotICAgIC8vICAgdGVzdCB0aHJlZSB0ZXN0
IGZvdXINCi19Ci0NCi0vLyB0ZXN0IG5vIG5ld2xpbmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIv
cmVzb3VyY2VzL3VuaXgtbGluZWJyZWFrcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9yZXNvdXJjZXMvdW5peC1saW5lYnJlYWtzLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA0ZDFmYzFiNDE2OTM5MmZhNDgyYjBjZjcwYjM1Zjg2M2YwNDVhMDdm
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZXNvdXJjZXMvdW5peC1saW5lYnJlYWtz
LmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotLy8gdGVzdCBvbmUKLS8vIAotLy8g
IHRlc3QgdHdvCi0KLWZ1bmN0aW9uIGJhcigpCi17Ci0gICAgLy8gdGVzdCB0aHJlZSB0ZXN0IGZv
dXIKLX0KLQotLy8gdGVzdCBubyBuZXdsaW5lClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Jlc291
cmNlcy93aW5kb3dzLWxpbmVicmVha3MuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvcmVzb3VyY2VzL3dpbmRvd3MtbGluZWJyZWFrcy5qcwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOTUwZDYxMTU3ZmEzOWQ3YTUxZjVjYzM1NzViNzYwZmY0YjkzYjFi
Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvcmVzb3VyY2VzL3dpbmRvd3MtbGluZWJy
ZWFrcy5qcworKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLS8vIHRlc3Qgb25lDQotLy8g
DQotLy8gIHRlc3QgdHdvDQotDQotZnVuY3Rpb24gZm9vKCkNCi17DQotICAgIC8vIHRlc3QgdGhy
ZWUgdGVzdCBmb3VyDQotfQ0KLQ0KLS8vIHRlc3Qgbm8gbmV3bGluZQpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci9zZWFyY2hJbkNvbnRlbnQtbGluZWJyZWFrcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2VhcmNoSW5Db250ZW50LWxpbmVicmVh
a3MtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNzg5NjJhMDM1
NWZlYzA1ZWQxYjM5MjI5M2ZjOTFhOTM1MGVkMTRiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9zZWFyY2hJbkNvbnRlbnQtbGluZWJyZWFrcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVs
bApAQCAtMSwzMiArMCwwIEBACi1WZXJpZnkgdGhhdCBEZWJ1Z2dlci5zZWFyY2hJbkNvbnRlbnQg
d29ya3Mgd2l0aCBzY3JpcHRzIHRoYXQgaGF2ZSB2YXJ5aW5nIGxpbmUgZW5kaW5ncy4KLVNjcmlw
dHMgc2VhcmNoZWQ6IDQKLQotU2NyaXB0OiBtYWMtbGluZWJyZWFrcy5qcwotUmVzdWx0cyBmb3Vu
ZDogNAotTGluZSAwOiAiLy8gdGVzdCBvbmVcciIKLUxpbmUgMjogIi8vICB0ZXN0IHR3b1xyIgot
TGluZSA2OiAiICAgIC8vICAgdGVzdCB0aHJlZSB0ZXN0IGZvdXJcciIKLUxpbmUgOTogIi8vIHRl
c3Qgbm8gbmV3bGluZSIKLQotU2NyaXB0OiBtaXhlZC1saW5lYnJlYWtzLmpzCi1SZXN1bHRzIGZv
dW5kOiA0Ci1MaW5lIDA6ICIvLyB0ZXN0IG9uZVxuIgotTGluZSAyOiAiLy8gdGVzdCB0d29cciIK
LUxpbmUgNjogIiAgICAvLyAgIHRlc3QgdGhyZWUgdGVzdCBmb3VyXHJcbiIKLUxpbmUgOTogIi8v
IHRlc3Qgbm8gbmV3bGluZSIKLQotU2NyaXB0OiB1bml4LWxpbmVicmVha3MuanMKLVJlc3VsdHMg
Zm91bmQ6IDQKLUxpbmUgMDogIi8vIHRlc3Qgb25lXG4iCi1MaW5lIDI6ICIvLyAgdGVzdCB0d29c
biIKLUxpbmUgNjogIiAgICAvLyB0ZXN0IHRocmVlIHRlc3QgZm91clxuIgotTGluZSA5OiAiLy8g
dGVzdCBubyBuZXdsaW5lIgotCi1TY3JpcHQ6IHdpbmRvd3MtbGluZWJyZWFrcy5qcwotUmVzdWx0
cyBmb3VuZDogNAotTGluZSAwOiAiLy8gdGVzdCBvbmVcclxuIgotTGluZSAyOiAiLy8gIHRlc3Qg
dHdvXHJcbiIKLUxpbmUgNjogIiAgICAvLyB0ZXN0IHRocmVlIHRlc3QgZm91clxyXG4iCi1MaW5l
IDk6ICIvLyB0ZXN0IG5vIG5ld2xpbmUiCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NlYXJjaEluQ29udGVudC1saW5lYnJlYWtzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2VhcmNoSW5Db250ZW50
LWxpbmVicmVha3MuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDk5NWRmY2M0
NThjNDI2YmU3NmE4MTg5NGYxNGU4M2QwMWJhYTJlYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVi
dWdnZXIvc2VhcmNoSW5Db250ZW50LWxpbmVicmVha3MuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDY3ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9taXhlZC1saW5lYnJlYWtzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvdW5peC1saW5lYnJlYWtzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvbWFjLWxpbmVicmVha3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJl
c291cmNlcy93aW5kb3dzLWxpbmVicmVha3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0
aW9uIHRlc3QoKQotewotICAgIGNvbnN0IGV4cGVjdGVkU2VhcmNoQ291bnQgPSA0OwotICAgIHZh
ciBjb21wbGV0ZWRTZWFyY2hDb3VudCA9IDA7Ci0KLSAgICB2YXIgdGVzdFJlc3VsdHMgPSBbXTsK
LQotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsK
LQotICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQi
XSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCi0gICAgewotICAgICAgICBpZiAoLy1saW5lYnJl
YWtzXC5qcyQvLnRlc3QobWVzc2FnZU9iamVjdC5wYXJhbXMudXJsKSkgewotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2VhcmNoSW5Db250ZW50IiwgeyJz
Y3JpcHRJZCI6IG1lc3NhZ2VPYmplY3QucGFyYW1zLnNjcmlwdElkLCAicXVlcnkiOiAidGVzdCJ9
LCBmdW5jdGlvbih1cmwsIG1lc3NhZ2VPYmplY3QpIHsKLSAgICAgICAgICAgICAgICB2YXIgcmVz
dWx0cyA9IG1lc3NhZ2VPYmplY3QucmVzdWx0LnJlc3VsdDsKLQotICAgICAgICAgICAgICAgIHZh
ciB0ZXN0UmVzdWx0ID0ge3VybDogdXJsLCBjb3VudDogcmVzdWx0cy5sZW5ndGgsIG1hdGNoZXM6
IFtdfTsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciByZXN1bHQgb2YgcmVzdWx0cykKLSAgICAg
ICAgICAgICAgICAgICAgdGVzdFJlc3VsdC5tYXRjaGVzLnB1c2gocmVzdWx0KTsKLQotICAgICAg
ICAgICAgICAgIHRlc3RSZXN1bHRzLnB1c2godGVzdFJlc3VsdCk7Ci0KLSAgICAgICAgICAgICAg
ICBpZiAoKytjb21wbGV0ZWRTZWFyY2hDb3VudCA+PSBleHBlY3RlZFNlYXJjaENvdW50KQotICAg
ICAgICAgICAgICAgICAgICBvdXRwdXRSZXN1bHRzKCk7Ci0gICAgICAgICAgICB9LmJpbmQobnVs
bCwgbWVzc2FnZU9iamVjdC5wYXJhbXMudXJsKSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBm
dW5jdGlvbiBvdXRwdXRSZXN1bHRzKCkKLSAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIGNvbXBhcmVS
ZXN1bHRVUkxzKGEsIGIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBhLnVybC5sb2Nh
bGVDb21wYXJlKGIudXJsKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZhciBzb3J0ZWRUZXN0UmVz
dWx0cyA9IHRlc3RSZXN1bHRzLnNvcnQoY29tcGFyZVJlc3VsdFVSTHMpOwotCi0gICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJTY3JpcHRzIHNlYXJjaGVkOiAiICsgc29ydGVkVGVzdFJlc3VsdHMu
bGVuZ3RoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiIpOwotCi0gICAgICAgIGZvciAo
dmFyIHRlc3RSZXN1bHQgb2Ygc29ydGVkVGVzdFJlc3VsdHMpIHsKLSAgICAgICAgICAgIHZhciBm
aWxlTmFtZSA9IC8oW1x3LV0rXC5qcykkLy5leGVjKHRlc3RSZXN1bHQudXJsKVsxXTsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJTY3JpcHQ6ICIgKyBmaWxlTmFtZSk7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUmVzdWx0cyBmb3VuZDogIiArIHRlc3RSZXN1bHQuY291
bnQpOwotICAgIAotICAgICAgICAgICAgZm9yICh2YXIgbWF0Y2ggb2YgdGVzdFJlc3VsdC5tYXRj
aGVzKQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJMaW5lICIgKyBtYXRjaC5s
aW5lTnVtYmVyICsgIjogIiArIEpTT04uc3RyaW5naWZ5KG1hdGNoLmxpbmVDb250ZW50KSk7ICAg
IAotCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiIik7Ci0gICAgICAgIH0KLQotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotVmVyaWZ5IHRoYXQgRGVidWdnZXIu
c2VhcmNoSW5Db250ZW50IHdvcmtzIHdpdGggc2NyaXB0cyB0aGF0IGhhdmUgdmFyeWluZyBsaW5l
IGVuZGluZ3MuCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hY3Rpb25zLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50
LWFjdGlvbnMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZjRk
MmFiMjJiZTEzNDU1YWM3NmFjMGVkMmY0ZGRlZmZlYmRhMmY2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWFjdGlvbnMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMjcgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5OiBsb2ctYWN0aW9u
LWJlZm9yZQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IGV2YWwtYWN0aW9uCi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTk6IGxvZy1hY3Rpb24tYWZ0ZXIKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAx
OTogbG9nLWFjdGlvbi1iZWZvcmUKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBldmFsLWFjdGlv
bgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5OiBsb2ctYWN0aW9uLWFmdGVyCi1EZWJ1Z2dlci5z
ZXRCcmVha3BvaW50IG9wdGlvbnMuYWN0aW9ucwotCi1Gb3VuZCBicmVha3BvaW50LmpzCi1SdW5u
aW5nIGJyZWFrcG9pbnRBY3Rpb25zIGEgZmV3IHRpbWVzIHRoYXQgc2hvdWxkIG5vdCB0cmlnZ2Vy
Ci1pbnNpZGUgYnJlYWtwb2ludEFjdGlvbnMgYTooMSkgYjoodW5kZWZpbmVkKQotaW5zaWRlIGJy
ZWFrcG9pbnRBY3Rpb25zIGE6KDIpIGI6KDEyKQotaW5zaWRlIGJyZWFrcG9pbnRBY3Rpb25zIGE6
KDIpIGI6KFtvYmplY3QgT2JqZWN0XSkKLVJ1bm5pbmcgYnJlYWtwb2ludEFjdGlvbnMgdG8gdHJp
Z2dlcmluZyB0aGUgYnJlYWtwb2ludCBhY3Rpb25zCi1pbnNpZGUgYnJlYWtwb2ludEFjdGlvbnMg
YTooMTIpIGI6KFtvYmplY3QgT2JqZWN0XSkKLVBBU1M6IENvbnNvbGUgTWVzc2FnZTogeyJzb3Vy
Y2UiOiJqYXZhc2NyaXB0IiwibGV2ZWwiOiJsb2ciLCJ0ZXh0IjoibG9nLWFjdGlvbi1iZWZvcmUi
LCJsb2NhdGlvbiI6ImJyZWFrcG9pbnQuanM6MTk6MiJ9Ci1QQVNTOiBCcmVha3BvaW50IFNvdW5k
Ci1QQVNTOiBDb25zb2xlIE1lc3NhZ2U6IHsic291cmNlIjoiY29uc29sZS1hcGkiLCJsZXZlbCI6
ImxvZyIsInRleHQiOiJldmFsLWFjdGlvbiIsImxvY2F0aW9uIjoiPz8/OjE6MjYiLCJwYXJhbWV0
ZXJzIjpbeyJ0eXBlIjoic3RyaW5nIn0seyJ0eXBlIjoibnVtYmVyIn0seyJ0eXBlIjoib2JqZWN0
In1dfQotUEFTUzogQ29uc29sZSBNZXNzYWdlOiB7InNvdXJjZSI6ImphdmFzY3JpcHQiLCJsZXZl
bCI6ImxvZyIsInRleHQiOiJsb2ctYWN0aW9uLWFmdGVyIiwibG9jYXRpb24iOiJicmVha3BvaW50
LmpzOjE5OjIifQotUEFTUzogUHJvYmUgc2FtcGxlIHBheWxvYWQ6IHsidHlwZSI6Im51bWJlciIs
InZhbHVlIjoxMiwiZGVzY3JpcHRpb24iOiIxMiJ9Ci1pbnNpZGUgYnJlYWtwb2ludEFjdGlvbnMg
YTooMTAwKSBiOihbb2JqZWN0IEhUTUxCb2R5RWxlbWVudF0pCi1QQVNTOiBDb25zb2xlIE1lc3Nh
Z2U6IHsic291cmNlIjoiamF2YXNjcmlwdCIsImxldmVsIjoibG9nIiwidGV4dCI6ImxvZy1hY3Rp
b24tYmVmb3JlIiwibG9jYXRpb24iOiJicmVha3BvaW50LmpzOjE5OjIifQotUEFTUzogQnJlYWtw
b2ludCBTb3VuZAotUEFTUzogQ29uc29sZSBNZXNzYWdlOiB7InNvdXJjZSI6ImNvbnNvbGUtYXBp
IiwibGV2ZWwiOiJsb2ciLCJ0ZXh0IjoiZXZhbC1hY3Rpb24iLCJsb2NhdGlvbiI6Ij8/PzoxOjI2
IiwicGFyYW1ldGVycyI6W3sidHlwZSI6InN0cmluZyJ9LHsidHlwZSI6Im51bWJlciJ9LHsidHlw
ZSI6Im9iamVjdCIsInN1YnR5cGUiOiJub2RlIn1dfQotUEFTUzogQ29uc29sZSBNZXNzYWdlOiB7
InNvdXJjZSI6ImphdmFzY3JpcHQiLCJsZXZlbCI6ImxvZyIsInRleHQiOiJsb2ctYWN0aW9uLWFm
dGVyIiwibG9jYXRpb24iOiJicmVha3BvaW50LmpzOjE5OjIifQotUEFTUzogUHJvYmUgc2FtcGxl
IHBheWxvYWQ6IHsidHlwZSI6Im51bWJlciIsInZhbHVlIjoxMDAsImRlc2NyaXB0aW9uIjoiMTAw
In0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnQtYWN0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzMjJiM2QwMTUyZDFmOTdlZjBlNWM3ZDBlNzI5NzM1NWY1OTU3MTExLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWFjdGlvbnMuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDEyOCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYnJlYWtwb2ludC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5pbXBv
cnRTY3JpcHQoIi4uLy4uLy4uLy4uL2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvY29uc29s
ZS10ZXN0LmpzIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5pbXBvcnRTY3JpcHQoIi4uLy4uLy4uLy4u
L2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvcHJvYmUtaGVscGVyLmpzIik7Ci0KLSAgICBJ
bnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJDb25zb2xlLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0KLSAgICB2YXIg
aXNFeHBlY3RpbmdMb2dzID0gZmFsc2U7Ci0gICAgdmFyIGlzRXhwZWN0aW5nU291bmRzID0gZmFs
c2U7Ci0gICAgdmFyIGlzRXhwZWN0aW5nU2FtcGxlcyA9IGZhbHNlOwotICAgIHZhciBsb2dDb3Vu
dCA9IDA7Ci0gICAgdmFyIHNvdW5kQ291bnQgPSAwOwotICAgIHZhciBzYW1wbGVDb3VudCA9IDA7
Ci0gICAgY29uc3QgZXhwZWN0ZWRMb2dDb3VudCA9IDY7Ci0gICAgY29uc3QgZXhwZWN0ZWRTb3Vu
ZENvdW50ID0gMjsKLSAgICBjb25zdCBleHBlY3RlZFNhbXBsZUNvdW50ID0gMjsKLQotICAgIGZ1
bmN0aW9uIHJlY2VpdmVkQWxsRXhwZWN0ZWRPdXRwdXQoKSB7Ci0gICAgICAgIHJldHVybiBsb2dD
b3VudCA9PT0gZXhwZWN0ZWRMb2dDb3VudCAmJiBzYW1wbGVDb3VudCA9PT0gZXhwZWN0ZWRTYW1w
bGVDb3VudCAmJiBzb3VuZENvdW50ID09PSBleHBlY3RlZFNvdW5kQ291bnQ7Ci0gICAgfQotCi0g
ICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCJdID0g
ZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIGlmICgvcmVzb3VyY2VzXC9i
cmVha3BvaW50XC5qcyQvLnRlc3QobWVzc2FnZU9iamVjdC5wYXJhbXMudXJsKSkgewotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZvdW5kIGJyZWFrcG9pbnQuanMiKTsKLSAgICAgICAg
ICAgIHZhciBzY3JpcHRJZGVudGlmaWVyID0gbWVzc2FnZU9iamVjdC5wYXJhbXMuc2NyaXB0SWQ7
Ci0gICAgICAgICAgICB2YXIgbG9jYXRpb24gPSB7c2NyaXB0SWQ6IHNjcmlwdElkZW50aWZpZXIs
IGxpbmVOdW1iZXI6IDE4LCBjb2x1bW5OdW1iZXI6IDB9OwotICAgICAgICAgICAgdmFyIG9wdGlv
bnMgPSB7Ci0gICAgICAgICAgICAgICAgY29uZGl0aW9uOiAiYSA+IDEwIiwKLSAgICAgICAgICAg
ICAgICBhdXRvQ29udGludWU6IHRydWUsCi0gICAgICAgICAgICAgICAgYWN0aW9uczogWwotICAg
ICAgICAgICAgICAgICAgICB7InR5cGUiOiAibG9nIiwgImRhdGEiOiAibG9nLWFjdGlvbi1iZWZv
cmUifSwKLSAgICAgICAgICAgICAgICAgICAgeyJ0eXBlIjogInNvdW5kIn0sCi0gICAgICAgICAg
ICAgICAgICAgIHsidHlwZSI6ICJldmFsdWF0ZSIsICJkYXRhIjogIihmdW5jdGlvbigpIHsgY29u
c29sZS5sb2coJ2V2YWwtYWN0aW9uJywgYSwgYik7IH0pKCkifSwKLSAgICAgICAgICAgICAgICAg
ICAgeyJ0eXBlIjogImxvZyIsICJkYXRhIjogImxvZy1hY3Rpb24tYWZ0ZXIifSwKLSAgICAgICAg
ICAgICAgICAgICAgeyJ0eXBlIjogInByb2JlIiwgImRhdGEiOiAiYSJ9Ci0gICAgICAgICAgICAg
ICAgXQotICAgICAgICAgICAgfTsKLQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludCIsIHtsb2NhdGlvbjogbG9jYXRpb24sIG9wdGlv
bnM6IG9wdGlvbnN9LCBmdW5jdGlvbihyZXNwb25zZU9iamVjdCkgewotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7Ci0gICAgICAgICAg
ICAgICAgYnJlYWtwb2ludElkZW50aWZpZXIgPSByZXNwb25zZU9iamVjdC5yZXN1bHQuYnJlYWtw
b2ludElkOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJSdW5uaW5nIGJyZWFr
cG9pbnRBY3Rpb25zIGEgZmV3IHRpbWVzIHRoYXQgc2hvdWxkIG5vdCB0cmlnZ2VyIik7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIs
IHtleHByZXNzaW9uOiAiYnJlYWtwb2ludEFjdGlvbnMoMSkifSk7Ci0gICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9u
OiAiYnJlYWtwb2ludEFjdGlvbnMoMiwgMTIpIn0pOwotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogImJyZWFr
cG9pbnRBY3Rpb25zKDIsIHt4OjEseToyfSkifSwgZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGlzRXhwZWN0aW5nTG9ncyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgIGlzRXhw
ZWN0aW5nU291bmRzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgaXNFeHBlY3RpbmdTYW1w
bGVzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlJ1bm5p
bmcgYnJlYWtwb2ludEFjdGlvbnMgdG8gdHJpZ2dlcmluZyB0aGUgYnJlYWtwb2ludCBhY3Rpb25z
Iik7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRp
bWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogImJyZWFrcG9pbnRBY3Rpb25zKDEyLCB7eDoxLHk6
Mn0pIn0sIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAiYnJlYWtwb2lu
dEFjdGlvbnMoMTAwLCBkb2N1bWVudC5ib2R5KSJ9KTsKLSAgICAgICAgICAgICAgICAgICAgfSk7
Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgIH0K
LQotICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1
bmN0aW9uKG1lc3NhZ2VPYmplY3QpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
SGl0IEJyZWFrcG9pbnQhIik7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6IHNo
b3VsZCBub3QgaGF2ZSBoaXQgYnJlYWtwb2ludCwgYXV0b0NvbnRpbnVlIHdhcyB0cnVlIik7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotCi0gICAgSW5zcGVj
dG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnBsYXlCcmVha3BvaW50QWN0aW9uU291bmQi
XSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCi0gICAgewotICAgICAgICBpZiAoIWlzRXhwZWN0
aW5nU291bmRzKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDogdW5leHBl
Y3RlZCBicmVha3BvaW50IHNvdW5kLiIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJQQVNTOiBCcmVha3BvaW50IFNvdW5kIik7Ci0KLSAgICAgICAgKytz
b3VuZENvdW50OwotCi0gICAgICAgIGlmIChyZWNlaXZlZEFsbEV4cGVjdGVkT3V0cHV0KCkpCi0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLQotICAgIElu
c3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5kaWRTYW1wbGVQcm9iZSJdID0gZnVu
Y3Rpb24obWVzc2FnZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIGlmICghaXNFeHBlY3RpbmdTYW1w
bGVzKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDogdW5leHBlY3RlZCBw
cm9iZSBzYW1wbGUsIHByb2JlIHNhbXBsZXMgc2hvdWxkIG9ubHkgaGF2ZSBjb21lIGZyb20gYnJl
YWtwb2ludCBhY3Rpb25zLiIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRl
c3QoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHZhciBzaW1w
bGlmaWVkU2FtcGxlID0gUHJvYmVIZWxwZXIuc2ltcGxpZmllZFByb2JlU2FtcGxlKG1lc3NhZ2VP
YmplY3QpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogUHJvYmUgc2FtcGxlIHBh
eWxvYWQ6ICIgKyBKU09OLnN0cmluZ2lmeShzaW1wbGlmaWVkU2FtcGxlLnBheWxvYWQpKTsKLQot
ICAgICAgICArK3NhbXBsZUNvdW50OwotCi0gICAgICAgIGlmIChyZWNlaXZlZEFsbEV4cGVjdGVk
T3V0cHV0KCkpCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAg
IH0KLQotICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJDb25zb2xlLm1lc3NhZ2VBZGRl
ZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIGlmICghaXNFeHBl
Y3RpbmdMb2dzKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDogdW5leHBl
Y3RlZCBsb2csIGxvZ3Mgc2hvdWxkIG9ubHkgaGF2ZSBjb21lIGZyb20gYnJlYWtwb2ludCBhY3Rp
b25zLiIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIHZhciBtZXNzYWdlID0gSW5zcGVj
dG9yVGVzdC5Db25zb2xlLnNhbml0aXplQ29uc29sZU1lc3NhZ2UobWVzc2FnZU9iamVjdCk7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiBDb25zb2xlIE1lc3NhZ2U6ICIgKyBKU09O
LnN0cmluZ2lmeShtZXNzYWdlKSk7Ci0KLSAgICAgICAgKytsb2dDb3VudDsKLQotICAgICAgICBp
ZiAocmVjZWl2ZWRBbGxFeHBlY3RlZE91dHB1dCgpKQotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KLTxwPkRlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb3B0aW9ucy5hY3Rp
b25zPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRpbnVlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3Bv
aW50LWF1dG9Db250aW51ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDZjNmE0ZDVmZWM1MTE1NGQ3YzkzZGFiNjk1YjU4MTY2MjQ4YjVlN2YuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRpbnVlLWV4cGVjdGVkLnR4
dAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLURlYnVnZ2VyLnNldEJyZWFrcG9pbnQg
b3B0aW9ucy5hdXRvQ29udGludWUKLQotRm91bmQgYnJlYWtwb2ludC5qcwotUnVubmluZyBicmVh
a3BvaW50QXV0b21hdGljYWxseUNvbnRpbnVlIG11bHRpcGxlIHRpbWVzIHdpdGggYXV0b21hdGlj
YWxseSBjb250aW51ZQotaW5zaWRlIGJyZWFrcG9pbnRBdXRvbWF0aWNhbGx5Q29udGludWUKLWlu
c2lkZSBicmVha3BvaW50QXV0b21hdGljYWxseUNvbnRpbnVlCi1pbnNpZGUgYnJlYWtwb2ludEF1
dG9tYXRpY2FsbHlDb250aW51ZQotUmVtb3ZpbmcgYnJlYWtwb2ludAotU2V0dGluZyBuZXcgYnJl
YWtwb2ludCB3aXRob3V0IGF1dG9Db250aW51ZSB0aGF0IHNob3VsZCB0cmlnZ2VyCi1pbnNpZGUg
YnJlYWtwb2ludEF1dG9tYXRpY2FsbHlDb250aW51ZQotSGl0IEJyZWFrcG9pbnQhCi1QQVNTOiBo
aXQgYnJlYWtwb2ludCB3aGVuIGFsbG93ZWQuCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51ZS5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQt
YXV0b0NvbnRpbnVlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwZjljNWM3
N2FhODk4MzcwYTM3NGQ5MzU3YWJhNzE3ZTdiZWIzN2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRpbnVlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw2MSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvYnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVu
Y3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIu
ZW5hYmxlIiwge30pOwotCi0gICAgdmFyIGFsbG93ZWRUb0hpdEJyZWFrcG9pbnQgPSBmYWxzZTsK
LSAgICB2YXIgYnJlYWtwb2ludElkZW50aWZpZXIgPSBudWxsOwotCi0gICAgSW5zcGVjdG9yVGVz
dC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCJdID0gZnVuY3Rpb24obWVzc2Fn
ZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIGlmICgvcmVzb3VyY2VzXC9icmVha3BvaW50XC5qcyQv
LnRlc3QobWVzc2FnZU9iamVjdC5wYXJhbXMudXJsKSkgewotICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIkZvdW5kIGJyZWFrcG9pbnQuanMiKTsKLSAgICAgICAgICAgIHZhciBzY3JpcHRJ
ZGVudGlmaWVyID0gbWVzc2FnZU9iamVjdC5wYXJhbXMuc2NyaXB0SWQ7Ci0gICAgICAgICAgICB2
YXIgbG9jYXRpb24gPSB7c2NyaXB0SWQ6IHNjcmlwdElkZW50aWZpZXIsIGxpbmVOdW1iZXI6IDEz
LCBjb2x1bW5OdW1iZXI6IDB9OwotICAgICAgICAgICAgdmFyIG9wdGlvbnMgPSB7YXV0b0NvbnRp
bnVlOiB0cnVlfTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVn
Z2VyLnNldEJyZWFrcG9pbnQiLCB7bG9jYXRpb246IGxvY2F0aW9uLCBvcHRpb25zOiBvcHRpb25z
fSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNoZWNrRm9yRXJyb3IocmVzcG9uc2VPYmplY3QpOwotICAgICAgICAgICAgICAgIGJyZWFr
cG9pbnRJZGVudGlmaWVyID0gcmVzcG9uc2VPYmplY3QucmVzdWx0LmJyZWFrcG9pbnRJZDsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUnVubmluZyBicmVha3BvaW50QXV0b21h
dGljYWxseUNvbnRpbnVlIG11bHRpcGxlIHRpbWVzIHdpdGggYXV0b21hdGljYWxseSBjb250aW51
ZSIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUu
ZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogImJyZWFrcG9pbnRBdXRvbWF0aWNhbGx5Q29udGludWUo
KSJ9KTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1l
LmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJicmVha3BvaW50QXV0b21hdGljYWxseUNvbnRpbnVl
KCkifSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGlt
ZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAiYnJlYWtwb2ludEF1dG9tYXRpY2FsbHlDb250aW51
ZSgpIn0sIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiUmVtb3ZpbmcgYnJlYWtwb2ludCIpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5yZW1vdmVCcmVha3BvaW50IiwgeyJicmVha3BvaW50
SWQiOiBicmVha3BvaW50SWRlbnRpZmllcn0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVzcG9u
c2VPYmplY3QpOwotICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dlZFRvSGl0QnJlYWtwb2lu
dCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zID0ge2F1dG9Db250aW51
ZTogZmFsc2V9OwotICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlNl
dHRpbmcgbmV3IGJyZWFrcG9pbnQgd2l0aG91dCBhdXRvQ29udGludWUgdGhhdCBzaG91bGQgdHJp
Z2dlciIpOwotICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludCIsIHtsb2NhdGlvbjogbG9jYXRpb24sIG9wdGlvbnM6
IG9wdGlvbnN9LCBmdW5jdGlvbihyZXNwb25zZU9iamVjdCkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVu
dGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAiYnJlYWtwb2ludEF1dG9tYXRpY2FsbHlDb250
aW51ZSgpIn0pOwotICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAg
ICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0K
LSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2Vk
Il0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIkhpdCBCcmVha3BvaW50ISIpOwotCi0gICAgICAgIGlmICghYWxsb3dlZFRvSGl0QnJl
YWtwb2ludCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6IHNob3VsZCBu
b3QgaGF2ZSBoaXQgYnJlYWtwb2ludC4iKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZygiUEFTUzogaGl0IGJyZWFrcG9pbnQgd2hlbiBhbGxvd2VkLiIpOwotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfQotICAgIH0KLX0KLTwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+RGVidWdnZXIuc2V0
QnJlYWtwb2ludCBvcHRpb25zLmF1dG9Db250aW51ZTwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVh
a3BvaW50LWNvbHVtbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb2x1bW4tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0ODU0NTRkZmE0NGE1YjFkMWI2OTJiNjU2Yjg0MzUxZWUwN2U2
YTVkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi1l
eHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLURlYnVnZ2VyLnNldEJy
ZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4gPHNjcmlwdD4KLQotRm91bmQgPHNjcmlwdD4KLVJ1
bm5pbmcgdGVzdEZ1bmN0aW9uCi1IaXQgQnJlYWtwb2ludCEKLUV2YWx1dGVkIHZhbHVlIG9mIGBh
YCAoZXhwZWN0aW5nIG51bWJlciAxKSB3YXM6IHsidHlwZSI6Im51bWJlciIsInZhbHVlIjoxLCJk
ZXNjcmlwdGlvbiI6IjEifQotRXZhbHV0ZWQgdmFsdWUgb2YgYGJgIChleHBlY3RpbmcgdW5kZWZp
bmVkKSB3YXM6IHsidHlwZSI6InVuZGVmaW5lZCJ9Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29s
dW1uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM0ODM5MzA1Yjg1MjljMzZk
YzhhOGNhZGI1NzlmNDJjMGY0NjNkOTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnQtY29sdW1uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBACi08
aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci0vLyBQdXQgdGhp
cyBoZXJlIGluc3RlYWQgb2Ygb24gPGJvZHkgb25sb2FkPiB0byBwcmV2ZW50IGFuIGV4dHJhIERl
YnVnZ2VyLnNjcmlwdFBhcnNlZCBldmVudC4KLXdpbmRvdy5vbmxvYWQgPSBydW5UZXN0OwotCi1m
dW5jdGlvbiB0ZXN0KCkKLXsKLSAgICAvLyBUaGlzIHRlc3Qgc2V0dGluZyBhIGJyZWFrcG9pbnQg
b24gbGluZTpjb2x1bW4gaW4gdGhlIDxzY3JpcHQ+IGJlbG93LgotICAgIC8vIFdlIHNldCBhIGJy
ZWFrcG9pbnQgYmVmb3JlIGV2YWx1YXRpbmcgYHZhciBiID0gLi4uYCwgYW5kIHZlcmlmeSB0aGF0
Ci0gICAgLy8gYnkgcnVubmluZyBzb21lIGV4cHJlc3Npb25zIGF0IHRoYXQgY2FsbCBmcmFtZS4K
LQotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsK
LQotICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQi
XSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCi0gICAgewotICAgICAgICBpZiAoL3NldEJyZWFr
cG9pbnQtY29sdW1uXC5odG1sJC8udGVzdChtZXNzYWdlT2JqZWN0LnBhcmFtcy51cmwpICYmIG1l
c3NhZ2VPYmplY3QucGFyYW1zLnN0YXJ0TGluZSA+IDEwKSB7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiRm91bmQgPHNjcmlwdD4iKTsKLSAgICAgICAgICAgIHZhciBzY3JpcHRJZGVu
dGlmaWVyID0gbWVzc2FnZU9iamVjdC5wYXJhbXMuc2NyaXB0SWQ7Ci0gICAgICAgICAgICB2YXIg
bGluZU51bWJlciA9IG1lc3NhZ2VPYmplY3QucGFyYW1zLnN0YXJ0TGluZSArIDI7Ci0gICAgICAg
ICAgICB2YXIgY29sdW1uTnVtYmVyID0gMTA7Ci0gICAgICAgICAgICB2YXIgbG9jYXRpb24gPSB7
c2NyaXB0SWQ6IHNjcmlwdElkZW50aWZpZXIsIGxpbmVOdW1iZXI6IGxpbmVOdW1iZXIsIGNvbHVt
bk51bWJlcjogY29sdW1uTnVtYmVyfTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENv
bW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnQiLCB7bG9jYXRpb246IGxvY2F0aW9ufSwgZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlJ1bm5pbmcgdGVz
dEZ1bmN0aW9uIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
UnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAidGVzdEZ1bmN0aW9uKCkifSk7Ci0gICAg
ICAgICAgICB9KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QuZXZlbnRI
YW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCi0gICAg
ewotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiSGl0IEJyZWFrcG9pbnQhIik7Ci0gICAgICAg
IHZhciBjYWxsRnJhbWVJZGVudGlmaWVyID0gbWVzc2FnZU9iamVjdC5wYXJhbXMuY2FsbEZyYW1l
c1swXS5jYWxsRnJhbWVJZDsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVi
dWdnZXIuZXZhbHVhdGVPbkNhbGxGcmFtZSIsIHtjYWxsRnJhbWVJZDogY2FsbEZyYW1lSWRlbnRp
ZmllciwgZXhwcmVzc2lvbjogImEifSwgZnVuY3Rpb24obWVzc2FnZU9iamVjdCkgewotICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkV2YWx1dGVkIHZhbHVlIG9mIGBhYCAoZXhwZWN0aW5n
IG51bWJlciAxKSB3YXM6ICIgKyBKU09OLnN0cmluZ2lmeShtZXNzYWdlT2JqZWN0LnJlc3VsdC5y
ZXN1bHQpKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2Vy
LmV2YWx1YXRlT25DYWxsRnJhbWUiLCB7Y2FsbEZyYW1lSWQ6IGNhbGxGcmFtZUlkZW50aWZpZXIs
IGV4cHJlc3Npb246ICJiIn0sIGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRXZhbHV0ZWQgdmFsdWUgb2YgYGJgIChleHBlY3Rpbmcg
dW5kZWZpbmVkKSB3YXM6ICIgKyBKU09OLnN0cmluZ2lmeShtZXNzYWdlT2JqZWN0LnJlc3VsdC5y
ZXN1bHQpKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwot
ICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHk+Ci08cD5EZWJ1Z2dlci5zZXRCcmVha3BvaW50IG9uIGxpbmU6Y29sdW1uIGluICZs
dDtzY3JpcHQmZ3Q7PC9wPgotPHNjcmlwdD4vLyBMaW5lIDAKLWZ1bmN0aW9uIHRlc3RGdW5jdGlv
bigpIHsvLyBMaW5lIDEKLXZhciBhID0gMTt2YXIgYiA9IGEgKyAxOy8vIExpbmUgMgotfS8vIExp
bmUgMwotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb2x1bW4udHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29s
dW1uLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmQ3NjBiNTU3MGIwOTBhMDA0
YTMyMzAzYzRiMTFjNmRhYWFmOGVjZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0
QnJlYWtwb2ludC1jb2x1bW4udHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1CcmVh
a3BvaW50cyBFbmFibGVkCi1Gb3VuZCA8c2NyaXB0PgotUnVubmluZyB0ZXN0RnVuY3Rpb24KLUhp
dCBCcmVha3BvaW50IQotRXZhbHV0ZWQgdmFsdWUgb2YgYGFgIChleHBlY3RpbmcgbnVtYmVyIDEp
IHdhczogeyJ0eXBlIjoibnVtYmVyIiwidmFsdWUiOjEsImRlc2NyaXB0aW9uIjoiMSJ9Ci1FdmFs
dXRlZCB2YWx1ZSBvZiBgYmAgKGV4cGVjdGluZyB1bmRlZmluZWQpIHdhczogeyJ0eXBlIjoidW5k
ZWZpbmVkIn0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL3NldEJyZWFrcG9pbnQtY29uZGl0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlvbi1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE1MmU2YjkwZWRiY2I3NjBk
YjI4YjdmZWM0MTNiY2M3OTJkZDMyZjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnQtY29uZGl0aW9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE5
ICswLDAgQEAKLURlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb3B0aW9ucy5jb25kaXRpb24KLQotRm91
bmQgYnJlYWtwb2ludC5qcwotUnVubmluZyBicmVha3BvaW50V2l0aENvbmRpdGlvbiBtdWx0aXBs
ZSB0aW1lcwotaW5zaWRlIGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uIGE6KDEpIGI6KDIpIGErYjoo
MykKLWluc2lkZSBicmVha3BvaW50V2l0aENvbmRpdGlvbiBhOig1KSBiOig1KSBhK2I6KDEwKQot
aW5zaWRlIGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uIGE6KDcpIGI6KDQpIGErYjooMTEpCi1IaXQg
QnJlYWtwb2ludCEKLUV2YWx1dGVkIHZhbHVlIG9mIGBhYCAoZXhwZWN0aW5nIG51bWJlciA3KSB3
YXM6IHsidHlwZSI6Im51bWJlciIsInZhbHVlIjo3LCJkZXNjcmlwdGlvbiI6IjcifQotRXZhbHV0
ZWQgdmFsdWUgb2YgYGJgIChleHBlY3RpbmcgbnVtYmVyIDQpIHdhczogeyJ0eXBlIjoibnVtYmVy
IiwidmFsdWUiOjQsImRlc2NyaXB0aW9uIjoiNCJ9Ci1SZXN1bWVkLCBydW5uaW5nIGJyZWFrcG9p
bnRXaXRoQ29uZGl0aW9uIG11bHRpcGxlIHRpbWVzIGFnYWluCi1pbnNpZGUgYnJlYWtwb2ludFdp
dGhDb25kaXRpb24gYTooOSkgYjooMCkgYStiOig5KQotaW5zaWRlIGJyZWFrcG9pbnRXaXRoQ29u
ZGl0aW9uIGE6KDEyKSBiOigtNCkgYStiOig4KQotaW5zaWRlIGJyZWFrcG9pbnRXaXRoQ29uZGl0
aW9uIGE6KDQpIGI6KDcpIGErYjooMTEpCi1IaXQgQnJlYWtwb2ludCEKLUV2YWx1dGVkIHZhbHVl
IG9mIGBhYCAoZXhwZWN0aW5nIG51bWJlciA0KSB3YXM6IHsidHlwZSI6Im51bWJlciIsInZhbHVl
Ijo0LCJkZXNjcmlwdGlvbiI6IjQifQotRXZhbHV0ZWQgdmFsdWUgb2YgYGJgIChleHBlY3Rpbmcg
bnVtYmVyIDcpIHdhczogeyJ0eXBlIjoibnVtYmVyIiwidmFsdWUiOjcsImRlc2NyaXB0aW9uIjoi
NyJ9Ci1QQVNTOiBoaXQgYnJlYWtwb2ludHMgd2l0aCBleHBlY3RlZCB2YWx1ZXMKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9p
bnQtY29uZGl0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdn
ZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNjgyYjY1MGVmZTRmZTFjZDI1NDhkMmVjZWVjNGQyOTY0ZDZlNGRhMy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24uaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDgyICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9icmVha3BvaW50LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0KLSAgICB2YXIgaW5CcmVha3BvaW50ID0gZmFsc2U7
Ci0gICAgdmFyIGJyZWFrcG9pbnRUcmlnZ2VyZWQgPSAwOwotCi0gICAgSW5zcGVjdG9yVGVzdC5l
dmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9i
amVjdCkKLSAgICB7Ci0gICAgICAgIGlmICgvcmVzb3VyY2VzXC9icmVha3BvaW50XC5qcyQvLnRl
c3QobWVzc2FnZU9iamVjdC5wYXJhbXMudXJsKSkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIkZvdW5kIGJyZWFrcG9pbnQuanMiKTsKLSAgICAgICAgICAgIHZhciBzY3JpcHRJZGVu
dGlmaWVyID0gbWVzc2FnZU9iamVjdC5wYXJhbXMuc2NyaXB0SWQ7Ci0gICAgICAgICAgICB2YXIg
bG9jYXRpb24gPSB7c2NyaXB0SWQ6IHNjcmlwdElkZW50aWZpZXIsIGxpbmVOdW1iZXI6IDgsIGNv
bHVtbk51bWJlcjogMH07Ci0gICAgICAgICAgICB2YXIgb3B0aW9ucyA9IHtjb25kaXRpb246ICIo
YSArIGIpID4gMTAifTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRl
YnVnZ2VyLnNldEJyZWFrcG9pbnQiLCB7bG9jYXRpb246IGxvY2F0aW9uLCBvcHRpb25zOiBvcHRp
b25zfSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVzcG9uc2VPYmplY3QpOwotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJSdW5uaW5nIGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uIG11bHRpcGxl
IHRpbWVzIik7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVu
dGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAiYnJlYWtwb2ludFdpdGhDb25kaXRpb24oMSwg
MikifSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGlt
ZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAiYnJlYWtwb2ludFdpdGhDb25kaXRpb24oNSwgNSki
fSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5l
dmFsdWF0ZSIsIHtleHByZXNzaW9uOiAiYnJlYWtwb2ludFdpdGhDb25kaXRpb24oNywgNCkifSk7
Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3Qu
ZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3Qp
Ci0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiSGl0IEJyZWFrcG9pbnQhIik7Ci0g
ICAgICAgIGluQnJlYWtwb2ludCA9IHRydWU7Ci0gICAgICAgICsrYnJlYWtwb2ludFRyaWdnZXJl
ZDsKLQotICAgICAgICB2YXIgY2FsbEZyYW1lSWRlbnRpZmllciA9IG1lc3NhZ2VPYmplY3QucGFy
YW1zLmNhbGxGcmFtZXNbMF0uY2FsbEZyYW1lSWQ7Ci0gICAgICAgIGlmIChicmVha3BvaW50VHJp
Z2dlcmVkID09PSAxKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJE
ZWJ1Z2dlci5ldmFsdWF0ZU9uQ2FsbEZyYW1lIiwge2NhbGxGcmFtZUlkOiBjYWxsRnJhbWVJZGVu
dGlmaWVyLCBleHByZXNzaW9uOiAiYSJ9LCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkV2YWx1dGVkIHZhbHVlIG9mIGBhYCAoZXhw
ZWN0aW5nIG51bWJlciA3KSB3YXM6ICIgKyBKU09OLnN0cmluZ2lmeShtZXNzYWdlT2JqZWN0LnJl
c3VsdC5yZXN1bHQpKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJEZWJ1Z2dlci5ldmFsdWF0ZU9uQ2FsbEZyYW1lIiwge2NhbGxGcmFtZUlkOiBjYWxsRnJhbWVJ
ZGVudGlmaWVyLCBleHByZXNzaW9uOiAiYiJ9LCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7Ci0g
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFdmFsdXRlZCB2YWx1ZSBvZiBg
YmAgKGV4cGVjdGluZyBudW1iZXIgNCkgd2FzOiAiICsgSlNPTi5zdHJpbmdpZnkobWVzc2FnZU9i
amVjdC5yZXN1bHQucmVzdWx0KSk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
c2VuZENvbW1hbmQoIkRlYnVnZ2VyLnJlc3VtZSIsIHt9KTsKLSAgICAgICAgICAgICAgICB9KTsK
LSAgICAgICAgICAgIH0pOwotICAgICAgICB9IGVsc2UgaWYgKGJyZWFrcG9pbnRUcmlnZ2VyZWQg
PT09IDIpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2Vy
LmV2YWx1YXRlT25DYWxsRnJhbWUiLCB7Y2FsbEZyYW1lSWQ6IGNhbGxGcmFtZUlkZW50aWZpZXIs
IGV4cHJlc3Npb246ICJhIn0sIGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKLSAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRXZhbHV0ZWQgdmFsdWUgb2YgYGFgIChleHBlY3Rpbmcg
bnVtYmVyIDQpIHdhczogIiArIEpTT04uc3RyaW5naWZ5KG1lc3NhZ2VPYmplY3QucmVzdWx0LnJl
c3VsdCkpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVn
Z2VyLmV2YWx1YXRlT25DYWxsRnJhbWUiLCB7Y2FsbEZyYW1lSWQ6IGNhbGxGcmFtZUlkZW50aWZp
ZXIsIGV4cHJlc3Npb246ICJiIn0sIGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKLSAgICAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkV2YWx1dGVkIHZhbHVlIG9mIGBiYCAoZXhw
ZWN0aW5nIG51bWJlciA3KSB3YXM6ICIgKyBKU09OLnN0cmluZ2lmeShtZXNzYWdlT2JqZWN0LnJl
c3VsdC5yZXN1bHQpKTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBB
U1M6IGhpdCBicmVha3BvaW50cyB3aXRoIGV4cGVjdGVkIHZhbHVlcyIpOwotICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAgICAgIH0p
OwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiRkFJTDogaGl0IHRvbyBtYW55IGJyZWFrcG9pbnRzLiIpOwotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAg
IEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5yZXN1bWVkIl0gPSBmdW5jdGlv
bihtZXNzYWdlT2JqZWN0KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlJlc3Vt
ZWQsIHJ1bm5pbmcgYnJlYWtwb2ludFdpdGhDb25kaXRpb24gbXVsdGlwbGUgdGltZXMgYWdhaW4i
KTsKLSAgICAgICAgaW5CcmVha3BvaW50ID0gZmFsc2U7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAiYnJlYWtwb2lu
dFdpdGhDb25kaXRpb24oOSwgMCkifSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogImJyZWFrcG9pbnRXaXRoQ29uZGl0
aW9uKDEyLCAtNCkifSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRp
bWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogImJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uKDQsIDcp
In0sIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAg
ICAgICAgICAgICAgICBpZiAoIWluQnJlYWtwb2ludCkgewotICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygiRkFJTDogRGlkIG5vdCBoaXQgY29uZGl0aW9uYWwgYnJlYWtwb2lu
dCB0aGUgc2Vjb25kIHRpbWUiKTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5j
b21wbGV0ZVRlc3QoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9LCAxMDApOwot
ICAgICAgICB9KTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KLTxwPkRlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb3B0aW9ucy5jb25kaXRpb248
L3A+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1kZmctYW5kLW1vZGlmeS1sb2NhbC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJl
YWtwb2ludC1kZmctYW5kLW1vZGlmeS1sb2NhbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGQ5NzcyNTgzZDhjOWI2MGJhODQyYWU4OGZhMmE3MjBhOWQzN2U5Njcu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZGZnLWFuZC1tb2Rp
ZnktbG9jYWwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotRGVi
dWdnZXIuZXZhbHVhdGVPbkNhbGxGcmFtZSBpbiBhIERGRyBjb21waWxlZCBmdW5jdGlvbnMuCi0K
LUZvdW5kIGJyZWFrcG9pbnQuanMKLXJlc3VsdDogNTAyNTAwCi1kZmcgZnVuY3Rpb24gd2FybWVk
IHVwCi0KLUJyZWFrcG9pbnQgc2V0IGluIGJyZWFrcG9pbnRCYXNpYygpCi1IaXQgQnJlYWtwb2lu
dCEKLUV2YWx1YXRpbmcgaW4gREZHIGZyYW1lIGF0IGZyYW1lWzFdOiAneCA9IDIwMDAwOycKLVJl
c3VtZWQgZnJvbSBicmVha3BvaW50Ci1pbnNpZGUgYnJlYWtwb2ludEJhc2ljCi1QQVNTOiByZXN1
bHQgaXMgMjAwMDMKLVRlc3QgY29tcGxldGUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZGZnLWFuZC1tb2RpZnktbG9j
YWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVh
a3BvaW50LWRmZy1hbmQtbW9kaWZ5LWxvY2FsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDYyODUyODVhOGY3YzFiOWFkNDMyNzM1NGJmNzhhYWYzMWM3ZjJmYzAuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZGZnLWFuZC1tb2RpZnktbG9jYWwu
aHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRl
c3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9icmVha3BvaW50LmpzIj48
L3NjcmlwdD4KLQotPHNjcmlwdD4KLS8vIFB1dCB0aGlzIGhlcmUgaW5zdGVhZCBvZiBvbiA8Ym9k
eSBvbmxvYWQ+IHRvIHByZXZlbnQgYW4gZXh0cmEgRGVidWdnZXIuc2NyaXB0UGFyc2VkIGV2ZW50
Lgotd2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIC8v
IFRoaXMgdGVzdCBzZXR0aW5nIDIgYnJlYWtwb2ludHMgaW4gREZHIGNvbXBpbGVkIGZ1bmN0aW9u
czogb25lIGlubGluZWQsCi0gICAgLy8gYW5kIG9uZSBub3QgaW5saW5lZC4KLQotICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLQotICAgIHZhciBi
cmVha3BvaW50SWQgPSBudWxsOwotICAgIHZhciBzY3JpcHRJZCA9IDA7Ci0gICAgdmFyIHN0YXJ0
TGluZSA9IDA7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2Ny
aXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQotICAgIHsKLSAgICAgICAgaWYg
KC9yZXNvdXJjZXNcL2JyZWFrcG9pbnRcLmpzJC8udGVzdChtZXNzYWdlT2JqZWN0LnBhcmFtcy51
cmwpKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRm91bmQgYnJlYWtwb2ludC5q
cyIpOwotICAgICAgICAgICAgc2NyaXB0SWQgPSBtZXNzYWdlT2JqZWN0LnBhcmFtcy5zY3JpcHRJ
ZDsKLSAgICAgICAgICAgIHN0YXJ0TGluZSA9IG1lc3NhZ2VPYmplY3QucGFyYW1zLnN0YXJ0TGlu
ZTsKLQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFs
dWF0ZSIsIHsKLSAgICAgICAgICAgICAgICBleHByZXNzaW9uOiAiZGZnV2l0aG91dElubGluZTIo
KTsiCi0gICAgICAgICAgICB9LCBmdW5jdGlvbihyZXNwb25zZU9iamVjdCkgewotICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJkZmcgZnVuY3Rpb24gd2FybWVkIHVwXG4iKTsKLQot
ICAgICAgICAgICAgICAgIHZhciBsb2NhdGlvbjEgPSB7c2NyaXB0SWQ6IHNjcmlwdElkLCBsaW5l
TnVtYmVyOiAyLCBjb2x1bW5OdW1iZXI6IDB9OwotCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludCIsIHtsb2NhdGlvbjogbG9j
YXRpb24xfSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKLSAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKHJlc3BvbnNlT2JqZWN0KTsKLSAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnQgc2V0IGluIGJyZWFrcG9pbnRC
YXNpYygpIik7Ci0KLSAgICAgICAgICAgICAgICAgICAgYnJlYWtwb2ludElkID0gcmVzcG9uc2VP
YmplY3QucmVzdWx0LmJyZWFrcG9pbnRJZDsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGV4cHJlc3Npb246ICJjYWxsTm90SW5saW5lYWJsZTIoKTsiCi0gICAgICAgICAgICAg
ICAgICAgIH0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiVGVzdCBjb21wbGV0ZSIpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgICAgICAgICAg
ICAgfSk7Ci0gICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQot
ICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQi
XSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZygiSGl0IEJyZWFrcG9pbnQhIik7Ci0gICAgICAgIHZhciBjYWxsRnJhbWVzID0gbWVzc2Fn
ZU9iamVjdC5wYXJhbXMuY2FsbEZyYW1lczsKLSAgICAgICAgaWYgKGNhbGxGcmFtZXMubGVuZ3Ro
IDwgMykKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiB0b28gZmV3IGZyYW1l
cyBpbiBzdGFjayB0cmFjZSIpOwotCi0gICAgICAgIHZhciBjYWxsRnJhbWVJZCA9IGNhbGxGcmFt
ZXNbMV0uY2FsbEZyYW1lSWQ7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFdmFsdWF0aW5n
IGluIERGRyBmcmFtZSBhdCBmcmFtZVsxXTogJ3ggPSAyMDAwMDsnIik7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmV2YWx1YXRlT25DYWxsRnJhbWUiLCB7IGNh
bGxGcmFtZUlkOiBjYWxsRnJhbWVJZCwgZXhwcmVzc2lvbjogInggPSAyMDAwMDsiIH0sIGZ1bmN0
aW9uKHJlc3BvbnNlT2JqZWN0KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21t
YW5kKCJEZWJ1Z2dlci5yZXN1bWUiLCB7fSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUmVzdW1lZCBmcm9tIGJyZWFrcG9pbnQi
KTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5PgotPHA+RGVidWdnZXIuZXZhbHVhdGVPbkNhbGxGcmFtZSBpbiBhIERGRyBj
b21waWxlZCBmdW5jdGlvbnMuPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZGZnLWNh
bGxlZS1hbmQtZXhhbWluZS1kZmctbG9jYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZGZnLWNhbGxlZS1hbmQtZXhh
bWluZS1kZmctbG9jYWwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzMTEyNWMyYzhmZDA3MWQwOGFhYTAzMDg4MWMwNWQ2ZjlhZjU2ZmE5Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWRmZy1jYWxsZWUtYW5kLWV4YW1pbmUtZGZn
LWxvY2FsLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLURlYnVn
Z2VyLmV2YWx1YXRlT25DYWxsRnJhbWUgaW4gYSBERkcgY29tcGlsZWQgZnVuY3Rpb24gZnJvbSBh
IGJyZWFrcG9pbnQgaW4gYSBub24tREZHIGNhbGxlZS4KLQotRm91bmQgYnJlYWtwb2ludC5qcwot
aW5zaWRlIGJyZWFrcG9pbnRCYXNpYwotcmVzdWx0OiAyMDA1MDAwCi1kZmcgZnVuY3Rpb24gd2Fy
bWVkIHVwCi0KLUJyZWFrcG9pbnQgc2V0IGluIGJyZWFrcG9pbnRCYXNpYygpCi1IaXQgQnJlYWtw
b2ludCEKLUV2YWx1YXRpbmcgaW4gREZHIGZyYW1lIGF0IGZyYW1lWzJdOiAnZ2xvYmFsVmFsMyA9
IDMwOycKLVJlc3BvbnNlIHZhbHVlIGlzIDMwCi1FdmFsdWF0aW5nIGluIERGRyBmcmFtZSBhdCBm
cmFtZVsyXTogJ2xvY2FsVmFsMyA9IDEyOycKLVJlc3BvbnNlIHZhbHVlIGlzIDEyCi1FdmFsdWF0
aW5nIGluIERGRyBmcmFtZSBhdCBmcmFtZVsyXTogJ2xvY2FsVmFsMycKLVJlc3BvbnNlIHZhbHVl
IGlzIDEyCi1SZXN1bWVkIGZyb20gYnJlYWtwb2ludAotaW5zaWRlIGJyZWFrcG9pbnRCYXNpYwot
cmVzdWx0OiA0MgotVGVzdCBjb21wbGV0ZQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1kZmctY2FsbGVlLWFuZC1leGFt
aW5lLWRmZy1sb2NhbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL3NldEJyZWFrcG9pbnQtZGZnLWNhbGxlZS1hbmQtZXhhbWluZS1kZmctbG9jYWwuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjNlOTMyZTViYTJmNjg1NTdlMDkwNGU4ZmNj
ODY4MWZjYTcwMGNjNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2lu
dC1kZmctY2FsbGVlLWFuZC1leGFtaW5lLWRmZy1sb2NhbC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMTEzICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9icmVha3BvaW50LmpzIj48L3NjcmlwdD4KLQotPHNjcmlwdD4K
LS8vIFB1dCB0aGlzIGhlcmUgaW5zdGVhZCBvZiBvbiA8Ym9keSBvbmxvYWQ+IHRvIHByZXZlbnQg
YW4gZXh0cmEgRGVidWdnZXIuc2NyaXB0UGFyc2VkIGV2ZW50Lgotd2luZG93Lm9ubG9hZCA9IHJ1
blRlc3Q7Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIC8vIFRoaXMgdGVzdCBzZXR0aW5nIGEg
YnJlYWtwb2ludHMgaW4gREZHIGNvbXBpbGVkIGZ1bmN0aW9ucyBjYWxsZWUgYW5kIHRoZW4gbW9k
aWZ5Ci0gICAgLy8gYW5kIGV4YW1pbmUgYSBnbG9iYWwgYW5kIGxvY2FsIHZpYSB0aGUgREZHIGZy
YW1lLgotCi0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwg
e30pOwotCi0gICAgdmFyIGJyZWFrcG9pbnRJZCA9IG51bGw7Ci0gICAgdmFyIHNjcmlwdElkID0g
MDsKLSAgICB2YXIgc3RhcnRMaW5lID0gMDsKLQotICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5k
bGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCi0g
ICAgewotICAgICAgICBpZiAoL3Jlc291cmNlc1wvYnJlYWtwb2ludFwuanMkLy50ZXN0KG1lc3Nh
Z2VPYmplY3QucGFyYW1zLnVybCkpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJG
b3VuZCBicmVha3BvaW50LmpzIik7Ci0gICAgICAgICAgICBzY3JpcHRJZCA9IG1lc3NhZ2VPYmpl
Y3QucGFyYW1zLnNjcmlwdElkOwotICAgICAgICAgICAgc3RhcnRMaW5lID0gbWVzc2FnZU9iamVj
dC5wYXJhbXMuc3RhcnRMaW5lOwotCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21t
YW5kKCJSdW50aW1lLmV2YWx1YXRlIiwgewotICAgICAgICAgICAgICAgIGV4cHJlc3Npb246ICJk
ZmdXaXRob3V0SW5saW5lMygpOyIKLSAgICAgICAgICAgIH0sIGZ1bmN0aW9uKHJlc3BvbnNlT2Jq
ZWN0KSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coImRmZyBmdW5jdGlvbiB3
YXJtZWQgdXBcbiIpOwotCi0gICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9uMSA9IHtzY3JpcHRJ
ZDogc2NyaXB0SWQsIGxpbmVOdW1iZXI6IDIsIGNvbHVtbk51bWJlcjogMH07Ci0KLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50
Iiwge2xvY2F0aW9uOiBsb2NhdGlvbjF9LCBmdW5jdGlvbihyZXNwb25zZU9iamVjdCkgewotICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVzcG9uc2VPYmpl
Y3QpOwotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtwb2ludCBz
ZXQgaW4gYnJlYWtwb2ludEJhc2ljKCkiKTsKLQotICAgICAgICAgICAgICAgICAgICBicmVha3Bv
aW50SWQgPSByZXNwb25zZU9iamVjdC5yZXN1bHQuYnJlYWtwb2ludElkOwotICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwgewot
ICAgICAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbjogImRmZ1dpdGhvdXRJbmxpbmUzKCk7
IgotICAgICAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbihyZXNwb25zZU9iamVjdCkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlRlc3QgY29tcGxldGUiKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0g
ICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAg
fSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsi
RGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQotICAgIHsKLSAgICAg
ICAgZnVuY3Rpb24gZHVtcFJlc3BvbnNlKHJlc3BvbnNlKQotICAgICAgICB7Ci0gICAgICAgICAg
ICB0cnkgewotICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5yZXN1bHQud2FzVGhyb3duKSB7
Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFeGNlcHRpb24gdGhyb3du
IHByb2Nlc3NpbmcgcmVxdWVzdCIpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJS
ZXNwb25zZSB2YWx1ZSBpcyAiICsgcmVzcG9uc2UucmVzdWx0LnJlc3VsdC52YWx1ZSk7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAg
ICAgICAgZnVuY3Rpb24gcmVzdW1lRnJvbUJyZWFrcG9pbnQoKQotICAgICAgICB7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5yZXN1bWUiLCB7fSwgZnVu
Y3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiUmVzdW1lZCBmcm9tIGJyZWFrcG9pbnQiKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9
Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkhpdCBCcmVha3BvaW50ISIpOwotICAgICAg
ICB2YXIgY2FsbEZyYW1lcyA9IG1lc3NhZ2VPYmplY3QucGFyYW1zLmNhbGxGcmFtZXM7Ci0gICAg
ICAgIGlmIChjYWxsRnJhbWVzLmxlbmd0aCA8IDMpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCJGQUlMOiB0b28gZmV3IGZyYW1lcyBpbiBzdGFjayB0cmFjZSIpOwotICAgICAgICAg
ICAgcmVzdW1lRnJvbUJyZWFrcG9pbnQoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotICAgICAgICB2YXIgY2FsbEZyYW1lSWQgPSBjYWxsRnJhbWVzWzJdLmNhbGxGcmFtZUlkOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRXZhbHVhdGluZyBpbiBERkcgZnJhbWUgYXQgZnJh
bWVbMl06ICdnbG9iYWxWYWwzID0gMzA7JyIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRD
b21tYW5kKCJEZWJ1Z2dlci5ldmFsdWF0ZU9uQ2FsbEZyYW1lIiwgeyBjYWxsRnJhbWVJZDogY2Fs
bEZyYW1lSWQsIGV4cHJlc3Npb246ICJnbG9iYWxWYWwzID0gMzA7IiB9LCBmdW5jdGlvbihyZXNw
b25zZU9iamVjdCkgewotICAgICAgICAgICAgaWYgKCFkdW1wUmVzcG9uc2UocmVzcG9uc2VPYmpl
Y3QpKSB7Ci0gICAgICAgICAgICAgICAgcmVzdW1lRnJvbUJyZWFrcG9pbnQoKTsKLSAgICAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZygiRXZhbHVhdGluZyBpbiBERkcgZnJhbWUgYXQgZnJhbWVbMl06ICdsb2NhbFZhbDMgPSAx
MjsnIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5l
dmFsdWF0ZU9uQ2FsbEZyYW1lIiwgeyBjYWxsRnJhbWVJZDogY2FsbEZyYW1lSWQsIGV4cHJlc3Np
b246ICJsb2NhbFZhbDMgPSAxMjsiIH0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKCFkdW1wUmVzcG9uc2UocmVzcG9uc2VPYmplY3QpKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIHJlc3VtZUZyb21CcmVha3BvaW50KCk7Ci0gICAgICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIkV2YWx1YXRpbmcgaW4gREZHIGZyYW1lIGF0IGZyYW1lWzJdOiAnbG9jYWxWYWwzJyIp
OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmV2
YWx1YXRlT25DYWxsRnJhbWUiLCB7IGNhbGxGcmFtZUlkOiBjYWxsRnJhbWVJZCwgZXhwcmVzc2lv
bjogImxvY2FsVmFsMyIgfSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKCFkdW1wUmVzcG9uc2UocmVzcG9uc2VPYmplY3QpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICByZXN1bWVGcm9tQnJlYWtwb2ludCgpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnJlc3VtZSIsIHt9LCBmdW5jdGlv
bihyZXNwb25zZU9iamVjdCkgewotICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIlJlc3VtZWQgZnJvbSBicmVha3BvaW50Iik7Ci0gICAgICAgICAgICAgICAgICAgIH0p
OwotICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAg
IH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5EZWJ1Z2dlci5ldmFsdWF0ZU9u
Q2FsbEZyYW1lIGluIGEgREZHIGNvbXBpbGVkIGZ1bmN0aW9uIGZyb20gYSBicmVha3BvaW50IGlu
IGEgbm9uLURGRyBjYWxsZWUuPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZGZnLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRC
cmVha3BvaW50LWRmZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAzY2E2YWJlYWVmNTc4NGQ3ODJlYmQxODJkN2NiOWRlYjE1ZmRkYjcuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZGZnLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDE4ICswLDAgQEAKLURlYnVnZ2VyLnNldEJyZWFrcG9pbnQgaW4gREZHIGNvbXBp
bGVkIGZ1bmN0aW9ucy4KLQotRm91bmQgYnJlYWtwb2ludC5qcwotZGZnV2l0aG91dElubGluZSBy
ZXN1bHQ6IDUwMjUwMAotZGZnV2l0aElubGluZSByZXN1bHQ6IDUwNDUwMAotZGZnIGZ1bmN0aW9u
cyB3YXJtZWQgdXAKLQotQnJlYWtwb2ludCBzZXQgaW4gbm90SW5saW5lYWJsZSgpCi1CcmVha3Bv
aW50IHNldCBpbiBpbmxpbmVhYmxlKCkKLQotSGl0IEJyZWFrcG9pbnQgMSEKLVJlbW92ZWQgQnJl
YWtwb2ludCAxIQotZGZnV2l0aG91dElubGluZSByZXN1bHQ6IDUwMjUwMAotSGl0IEJyZWFrcG9p
bnQgMiEKLVJlbW92ZWQgQnJlYWtwb2ludCAyIQotUEFTUwotZGZnV2l0aElubGluZSByZXN1bHQ6
IDUwNDUwMAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVi
dWdnZXIvc2V0QnJlYWtwb2ludC1kZmcuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWRmZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBmM2YwNzI0YjAyM2VhMTFmMWFlMTliMTcyYjAzMTk1OTZjNmZlMDE3Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWRmZy5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsODUgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2JyZWFrcG9pbnQuanMiPjwvc2NyaXB0PgotCi08
c2NyaXB0PgotLy8gUHV0IHRoaXMgaGVyZSBpbnN0ZWFkIG9mIG9uIDxib2R5IG9ubG9hZD4gdG8g
cHJldmVudCBhbiBleHRyYSBEZWJ1Z2dlci5zY3JpcHRQYXJzZWQgZXZlbnQuCi13aW5kb3cub25s
b2FkID0gcnVuVGVzdDsKLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgLy8gVGhpcyB0ZXN0IHNl
dHRpbmcgMiBicmVha3BvaW50cyBpbiBERkcgY29tcGlsZWQgZnVuY3Rpb25zOiBvbmUgaW5saW5l
ZCwKLSAgICAvLyBhbmQgb25lIG5vdCBpbmxpbmVkLgotCi0gICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOwotCi0gICAgdmFyIGRmZ05vbklubGluZWRC
cmVha3BvaW50SWQgPSBudWxsOwotICAgIHZhciBkZmdJbmxpbmVkQnJlYWtwb2ludElkID0gbnVs
bDsKLSAgICB2YXIgc2NyaXB0SWRlbnRpZmllciA9IDA7Ci0gICAgdmFyIHN0YXJ0TGluZSA9IDA7
Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2Vk
Il0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQotICAgIHsKLSAgICAgICAgaWYgKC9yZXNvdXJj
ZXNcL2JyZWFrcG9pbnRcLmpzJC8udGVzdChtZXNzYWdlT2JqZWN0LnBhcmFtcy51cmwpKSB7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRm91bmQgYnJlYWtwb2ludC5qcyIpOwotICAg
ICAgICAgICAgc2NyaXB0SWRlbnRpZmllciA9IG1lc3NhZ2VPYmplY3QucGFyYW1zLnNjcmlwdElk
OwotICAgICAgICAgICAgc3RhcnRMaW5lID0gbWVzc2FnZU9iamVjdC5wYXJhbXMuc3RhcnRMaW5l
OwotCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1
YXRlIiwgewotICAgICAgICAgICAgICAgIGV4cHJlc3Npb246ICJkZmdXaXRob3V0SW5saW5lKCk7
IGRmZ1dpdGhJbmxpbmUoKTsiCi0gICAgICAgICAgICB9LCBmdW5jdGlvbihyZXNwb25zZU9iamVj
dCkgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJkZmcgZnVuY3Rpb25zIHdh
cm1lZCB1cFxuIik7Ci0KLSAgICAgICAgICAgICAgICB2YXIgbG9jYXRpb24xID0ge3NjcmlwdElk
OiBzY3JpcHRJZGVudGlmaWVyLCBsaW5lTnVtYmVyOiAyMiwgY29sdW1uTnVtYmVyOiAwfTsKLQot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJy
ZWFrcG9pbnQiLCB7bG9jYXRpb246IGxvY2F0aW9uMX0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0
KSB7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNw
b25zZU9iamVjdCk7Ci0gICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJCcmVh
a3BvaW50IHNldCBpbiBub3RJbmxpbmVhYmxlKCkiKTsKLQotICAgICAgICAgICAgICAgICAgICBk
ZmdOb25JbmxpbmVkQnJlYWtwb2ludElkID0gcmVzcG9uc2VPYmplY3QucmVzdWx0LmJyZWFrcG9p
bnRJZDsKLSAgICAgICAgICAgICAgICAgICAgdmFyIGxvY2F0aW9uMiA9IHtzY3JpcHRJZDogc2Ny
aXB0SWRlbnRpZmllciwgbGluZU51bWJlcjogMjgsIGNvbHVtbk51bWJlcjogMH07Ci0gICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFr
cG9pbnQiLCB7bG9jYXRpb246IGxvY2F0aW9uMn0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVz
cG9uc2VPYmplY3QpOwotICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
IkJyZWFrcG9pbnQgc2V0IGluIGlubGluZWFibGUoKVxuIik7Ci0KLSAgICAgICAgICAgICAgICAg
ICAgICAgIGRmZ0lubGluZWRCcmVha3BvaW50SWQgPSByZXNwb25zZU9iamVjdC5yZXN1bHQuYnJl
YWtwb2ludElkOwotICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
eHByZXNzaW9uOiAiZGZnV2l0aG91dElubGluZSgpOyBkZmdXaXRoSW5saW5lKCk7IgotICAgICAg
ICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAg
ICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICB2YXIg
YnJlYWtwb2ludHNIaXQgPSAwOwotICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1
Z2dlci5wYXVzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCi0gICAgewotICAgICAgICB2
YXIgYnJlYWtwb2ludElkID0gbnVsbDsKLSAgICAgICAgYnJlYWtwb2ludHNIaXQrKzsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIkhpdCBCcmVha3BvaW50ICIgKyBicmVha3BvaW50c0hpdCAr
ICIhIik7Ci0gICAgICAgIGlmIChicmVha3BvaW50c0hpdCA9PSAxKQotICAgICAgICAgICAgYnJl
YWtwb2ludElkID0gZGZnTm9uSW5saW5lZEJyZWFrcG9pbnRJZDsKLSAgICAgICAgZWxzZSBpZiAo
YnJlYWtwb2ludHNIaXQgPT0gMikKLSAgICAgICAgICAgIGJyZWFrcG9pbnRJZCA9IGRmZ0lubGlu
ZWRCcmVha3BvaW50SWQ7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJVbmV4cGVjdGVkIGJyZWFrcG9pbnQiKTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LnNl
bmRDb21tYW5kKCJEZWJ1Z2dlci5yZW1vdmVCcmVha3BvaW50IiwgeyJicmVha3BvaW50SWQiOiBi
cmVha3BvaW50SWR9LCBmdW5jdGlvbihyZXNwb25zZU9iamVjdCkgewotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIlJlbW92ZWQgQnJlYWtwb2ludCAiICsgYnJlYWtwb2ludHNIaXQgKyAi
ISIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIucmVz
dW1lIiwge30sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7Ci0gICAgICAgICAgICAgICAgaWYg
KGJyZWFrcG9pbnRzSGl0ID09IDIpIHsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIlBBU1MiKTsKLSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0
ZVRlc3QoKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7
Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwPkRlYnVnZ2VyLnNldEJy
ZWFrcG9pbnQgaW4gREZHIGNvbXBpbGVkIGZ1bmN0aW9ucy48L3A+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0
QnJlYWtwb2ludC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvc2V0QnJlYWtwb2ludC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDk0M2RiYzUwNWU0ZTNmOTZlZTViYjVlZGQ5ODY0ODliNWZjY2Q0NTAuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi1EZWJ1Z2dlci5zZXRCcmVha3BvaW50IG9uIGxpbmU6
MCBpbiA8c2NyaXB0IHNyYz0iLi4uIj4KLQotRm91bmQgYnJlYWtwb2ludC5qcwotUEFTUzogUmVj
ZWl2ZWQgZXJyb3Igc2V0dGluZyBkdXBsaWNhdGUgYnJlYWtwb2ludDogQnJlYWtwb2ludCBhdCBz
cGVjaWZpZWQgbG9jYXRpb24gYWxyZWFkeSBleGlzdHMuCi1SdW5uaW5nIGJyZWFrcG9pbnRCYXNp
YwotaW5zaWRlIGJyZWFrcG9pbnRCYXNpYwotSGl0IEJyZWFrcG9pbnQhCi1QQVNTCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3Bv
aW50LW9wdGlvbnMtZXhjZXB0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LW9wdGlvbnMtZXhjZXB0aW9uLWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTk5N2Y0NjhlMGU5YTAyNDhm
M2MxZDBkZGM1NzMzODMzZDlmNTlkYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0
QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwxMiArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVHlwZUVycm9yOiB1bmRl
ZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndGhpcy53aWxsLmNhdXNlJykKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSAxOiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2Jq
ZWN0IChldmFsdWF0aW5nICd0aGlzLndpbGwuY2F1c2UnKQotRGVidWdnZXIuc2V0QnJlYWtwb2lu
dCBvcHRpb25zLmNvbmRpdGlvbiBvciBvcHRpb25zLmFjdGlvbiB3aXRoIGV4Y2VwdGlvbgotCi1G
b3VuZCBicmVha3BvaW50LmpzCi1SdW5uaW5nIGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uIHRvIHRy
aWdnZXIgY29uZGl0aW9uIGV4Y2VwdGlvbi4KLWluc2lkZSBicmVha3BvaW50V2l0aENvbmRpdGlv
biBhOigxKSBiOigyKSBhK2I6KDMpCi1QQVNTOiBDb25zb2xlIE1lc3NhZ2U6IHsic291cmNlIjoi
amF2YXNjcmlwdCIsImxldmVsIjoiZXJyb3IiLCJ0ZXh0IjoiVHlwZUVycm9yOiB1bmRlZmluZWQg
aXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndGhpcy53aWxsLmNhdXNlJykiLCJsb2NhdGlv
biI6InVuZGVmaW5lZDoxOjEwIn0KLVJ1bm5pbmcgYnJlYWtwb2ludEFjdGlvbnMgdG8gdHJpZ2dl
ciBhY3Rpb25zIGV4Y2VwdGlvbi4KLWluc2lkZSBicmVha3BvaW50QWN0aW9ucyBhOigxKSBiOigy
KQotUEFTUzogQ29uc29sZSBNZXNzYWdlOiB7InNvdXJjZSI6ImphdmFzY3JpcHQiLCJsZXZlbCI6
ImVycm9yIiwidGV4dCI6IlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2
YWx1YXRpbmcgJ3RoaXMud2lsbC5jYXVzZScpIiwibG9jYXRpb24iOiJ1bmRlZmluZWQ6MToxMCJ9
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9z
ZXRCcmVha3BvaW50LW9wdGlvbnMtZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMTY4YTAwNjRlNDM4NzgxMjllNzk5NDZh
YWQ5MWY5NDIyYzljZGE3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3Bv
aW50LW9wdGlvbnMtZXhjZXB0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvYnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgp
Ci17Ci0gICAgSW5zcGVjdG9yVGVzdC5pbXBvcnRTY3JpcHQoIi4uLy4uLy4uLy4uL2luc3BlY3Rv
ci1wcm90b2NvbC9yZXNvdXJjZXMvY29uc29sZS10ZXN0LmpzIik7Ci0KLSAgICBJbnNwZWN0b3JU
ZXN0LnNlbmRDb21tYW5kKCJDb25zb2xlLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0KLSAgICB2YXIgbG9nc1NlZW4g
PSAwOwotICAgIGNvbnN0IGV4cGVjdGVkTG9ncyA9IDI7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmV2
ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2Jq
ZWN0KQotICAgIHsKLSAgICAgICAgaWYgKC9yZXNvdXJjZXNcL2JyZWFrcG9pbnRcLmpzJC8udGVz
dChtZXNzYWdlT2JqZWN0LnBhcmFtcy51cmwpKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZygiRm91bmQgYnJlYWtwb2ludC5qcyIpOwotICAgICAgICAgICAgdmFyIHNjcmlwdElkZW50
aWZpZXIgPSBtZXNzYWdlT2JqZWN0LnBhcmFtcy5zY3JpcHRJZDsKLSAgICAgICAgICAgIHZhciBs
b2NhdGlvbiA9IHtzY3JpcHRJZDogc2NyaXB0SWRlbnRpZmllciwgbGluZU51bWJlcjogOCwgY29s
dW1uTnVtYmVyOiAwfTsKLSAgICAgICAgICAgIHZhciBvcHRpb25zID0ge2NvbmRpdGlvbjogInRo
aXMud2lsbC5jYXVzZS5leGNlcHRpb24iLCBhdXRvQ29udGludWU6IHRydWV9OwotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludCIsIHts
b2NhdGlvbjogbG9jYXRpb24sIG9wdGlvbnM6IG9wdGlvbnN9LCBmdW5jdGlvbihyZXNwb25zZU9i
amVjdCkgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNw
b25zZU9iamVjdCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlJ1bm5pbmcg
YnJlYWtwb2ludFdpdGhDb25kaXRpb24gdG8gdHJpZ2dlciBjb25kaXRpb24gZXhjZXB0aW9uLiIp
OwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZh
bHVhdGUiLCB7ZXhwcmVzc2lvbjogImJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uKDEsMikifSwgZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uID0ge3NjcmlwdElkOiBzY3Jp
cHRJZGVudGlmaWVyLCBsaW5lTnVtYmVyOiAxOCwgY29sdW1uTnVtYmVyOiAwfTsKLSAgICAgICAg
ICAgICAgICAgICAgb3B0aW9ucyA9IHthY3Rpb25zOiBbeyJ0eXBlIjogImV2YWx1YXRlIiwgImRh
dGEiOiAidGhpcy53aWxsLmNhdXNlLmV4Y2VwdGlvbiJ9XSwgYXV0b0NvbnRpbnVlOiB0cnVlfTsK
LSAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIu
c2V0QnJlYWtwb2ludCIsIHtsb2NhdGlvbjogbG9jYXRpb24sIG9wdGlvbnM6IG9wdGlvbnN9LCBm
dW5jdGlvbihyZXNwb25zZU9iamVjdCkgewotICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIlJ1bm5pbmcgYnJlYWtwb2ludEFjdGlvbnMgdG8gdHJpZ2dlciBhY3Rpb25z
IGV4Y2VwdGlvbi4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2Vu
ZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogImJyZWFrcG9pbnRBY3Rp
b25zKDEsMikifSk7Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgICAgIH0p
OwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0
LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0
KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkhpdCBCcmVha3BvaW50ISIpOwot
Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiBzaG91bGQgbm90IGhhdmUgaGl0IGJy
ZWFrcG9pbnQsIGF1dG9Db250aW51ZSB3YXMgdHJ1ZSIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVy
WyJDb25zb2xlLm1lc3NhZ2VBZGRlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKLSAgICB7
Ci0gICAgICAgIHZhciBtZXNzYWdlID0gSW5zcGVjdG9yVGVzdC5Db25zb2xlLnNhbml0aXplQ29u
c29sZU1lc3NhZ2UobWVzc2FnZU9iamVjdCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQ
QVNTOiBDb25zb2xlIE1lc3NhZ2U6ICIgKyBKU09OLnN0cmluZ2lmeShtZXNzYWdlKSk7Ci0KLSAg
ICAgICAgaWYgKCsrbG9nc1NlZW4gPT09IGV4cGVjdGVkTG9ncykKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5EZWJ1Z2dlci5zZXRCcmVha3BvaW50IG9wdGlv
bnMuY29uZGl0aW9uIG9yIG9wdGlvbnMuYWN0aW9uIHdpdGggZXhjZXB0aW9uPC9wPgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rl
YnVnZ2VyL3NldEJyZWFrcG9pbnQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDE0M2EyM2M5ODY5OTc4MjAzMmQ2MWU2OThmOGVlZGU1MDA4MWQxOGMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDQ0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9InJlc291cmNlcy9icmVha3BvaW50LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5j
dGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5l
bmFibGUiLCB7fSk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIu
c2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQotICAgIHsKLSAgICAgICAg
aWYgKC9yZXNvdXJjZXNcL2JyZWFrcG9pbnRcLmpzJC8udGVzdChtZXNzYWdlT2JqZWN0LnBhcmFt
cy51cmwpKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRm91bmQgYnJlYWtwb2lu
dC5qcyIpOwotICAgICAgICAgICAgdmFyIHNjcmlwdElkZW50aWZpZXIgPSBtZXNzYWdlT2JqZWN0
LnBhcmFtcy5zY3JpcHRJZDsKLSAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9IHtzY3JpcHRJZDog
c2NyaXB0SWRlbnRpZmllciwgbGluZU51bWJlcjogMywgY29sdW1uTnVtYmVyOiAwfTsKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnQi
LCB7bG9jYXRpb246IGxvY2F0aW9ufSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKLSAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVzcG9uc2VPYmplY3QpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJy
ZWFrcG9pbnQiLCB7bG9jYXRpb246IGxvY2F0aW9ufSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3Qp
IHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZU9iamVjdC5lcnJvcikgewotICAg
ICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6IEV4cGVjdGVkIGVy
cm9yIHNldHRpbmcgZHVwbGljYXRlIGJyZWFrcG9pbnQiKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzog
UmVjZWl2ZWQgZXJyb3Igc2V0dGluZyBkdXBsaWNhdGUgYnJlYWtwb2ludDogIiArIHJlc3BvbnNl
T2JqZWN0LmVycm9yLm1lc3NhZ2UpOwotICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIlJ1bm5pbmcgYnJlYWtwb2ludEJhc2ljIik7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJl
c3Npb246ICJicmVha3BvaW50QmFzaWMoKSJ9KTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIH0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAg
ICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlv
bihtZXNzYWdlT2JqZWN0KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkhpdCBC
cmVha3BvaW50ISIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUyIpOwotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPHA+RGVidWdnZXIuc2V0QnJlYWtwb2lu
dCBvbiBsaW5lOjAgaW4gJmx0O3NjcmlwdCBzcmM9Ii4uLiImZ3Q7PC9wPgotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MGMxMTZiNDU5Yzlm
N2RlZDM0ZjI1NjEzOGZhNTgyZjc2ZGE3MzljLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dl
ci9zZXRCcmVha3BvaW50QnlVcmwtc291cmNlVVJMLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDggKzAsMCBAQAotRGVidWdnZXIuc2V0QnJlYWtwb2ludEJ5VXJsIGluIFNjcmlwdCBu
YW1lZCB2aWEgc291cmNlVVJMCi0KLUZvdW5kIHNvdXJjZVVSTC10ZXN0LmpzCi1SdW5uaW5nIHNv
dXJjZVVSTEZ1bmN0aW9uCi1IaXQgQnJlYWtwb2ludCEKLUV2YWx1dGVkIHZhbHVlIG9mIGBhYCAo
ZXhwZWN0aW5nIG51bWJlciAxKSB3YXM6IHsidHlwZSI6Im51bWJlciIsInZhbHVlIjoxLCJkZXNj
cmlwdGlvbiI6IjEifQotRXZhbHV0ZWQgdmFsdWUgb2YgYGNgIChleHBlY3RpbmcgdW5kZWZpbmVk
KSB3YXM6IHsidHlwZSI6InVuZGVmaW5lZCJ9Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50QnlVcmwtc291cmNlVVJMLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2lu
dEJ5VXJsLXNvdXJjZVVSTC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZWYw
ZjI0NTgxMjA3NmY5NDFkOWMxYTc0ZjQyYTlmZjNkZjdkNmRiLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50QnlVcmwtc291cmNlVVJMLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSw0NCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotLy8gc291cmNlVVJMLXRlc3QuanM6Ci1ldmFsKCJmdW5jdGlvbiBzb3VyY2VVUkxGdW5jdGlv
bigpIHtcbiAgICB2YXIgYSA9IDE7XG4gICAgdmFyIGIgPSAyO1xuICAgIHZhciBjID0gYStiO1xu
fVxuLy8jIHNvdXJjZVVSTD1zb3VyY2VVUkwtdGVzdC5qcyIpCi0KLWZ1bmN0aW9uIHRlc3QoKQot
ewotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsK
LQotICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQi
XSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCi0gICAgewotICAgICAgICBpZiAoL3NvdXJjZVVS
TC10ZXN0XC5qcyQvLnRlc3QobWVzc2FnZU9iamVjdC5wYXJhbXMudXJsKSkgewotICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIkZvdW5kIHNvdXJjZVVSTC10ZXN0LmpzIik7Ci0gICAgICAg
ICAgICB2YXIgcGFyYW1zID0ge3VybDogbWVzc2FnZU9iamVjdC5wYXJhbXMudXJsLCBsaW5lTnVt
YmVyOiAzLCBjb2x1bW5OdW1iZXI6IDB9OwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludEJ5VXJsIiwgcGFyYW1zLCBmdW5jdGlvbihy
ZXNwb25zZU9iamVjdCkgewotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JF
cnJvcihyZXNwb25zZU9iamVjdCk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
IlJ1bm5pbmcgc291cmNlVVJMRnVuY3Rpb24iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzb3VyY2VV
UkxGdW5jdGlvbigpIn0pOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAg
ICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlv
bihtZXNzYWdlT2JqZWN0KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkhpdCBC
cmVha3BvaW50ISIpOwotICAgICAgICB2YXIgY2FsbEZyYW1lSWRlbnRpZmllciA9IG1lc3NhZ2VP
YmplY3QucGFyYW1zLmNhbGxGcmFtZXNbMF0uY2FsbEZyYW1lSWQ7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmV2YWx1YXRlT25DYWxsRnJhbWUiLCB7Y2FsbEZy
YW1lSWQ6IGNhbGxGcmFtZUlkZW50aWZpZXIsIGV4cHJlc3Npb246ICJhIn0sIGZ1bmN0aW9uKG1l
c3NhZ2VPYmplY3QpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFdmFsdXRlZCB2
YWx1ZSBvZiBgYWAgKGV4cGVjdGluZyBudW1iZXIgMSkgd2FzOiAiICsgSlNPTi5zdHJpbmdpZnko
bWVzc2FnZU9iamVjdC5yZXN1bHQucmVzdWx0KSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5ldmFsdWF0ZU9uQ2FsbEZyYW1lIiwge2NhbGxGcmFtZUlk
OiBjYWxsRnJhbWVJZGVudGlmaWVyLCBleHByZXNzaW9uOiAiYyJ9LCBmdW5jdGlvbihtZXNzYWdl
T2JqZWN0KSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkV2YWx1dGVkIHZh
bHVlIG9mIGBjYCAoZXhwZWN0aW5nIHVuZGVmaW5lZCkgd2FzOiAiICsgSlNPTi5zdHJpbmdpZnko
bWVzc2FnZU9iamVjdC5yZXN1bHQucmVzdWx0KSk7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9
Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPkRl
YnVnZ2VyLnNldEJyZWFrcG9pbnRCeVVybCBpbiBTY3JpcHQgbmFtZWQgdmlhIHNvdXJjZVVSTDwv
cD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy1hbGwtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRp
b25zLWFsbC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc1MjVm
NWUzMWQwMGU5Y2E4MTE1MGVkN2FmMGVlN2Y0OTVkZGQyNjguLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFsbC1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSw0NyArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogY2F1Z2h0IGlu
bGluZTogeyJsaW5lIjoxLCJjb2x1bW4iOjM2fQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM4OiBj
YXRjaE5lc3RlZCBjYXVnaHQgZXhjZXB0aW9uOiB7ImxpbmUiOjMsImNvbHVtbiI6MTEsInNvdXJj
ZVVSTCI6ImV4Y2VwdGlvbi5qcyJ9Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzg6IGNhdGNoTmVz
dGVkIGNhdWdodCBleGNlcHRpb246IHsiY29kZSI6OCwibmFtZSI6Ik5vdEZvdW5kRXJyb3IiLCJt
ZXNzYWdlIjoiTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiwibGluZSI6OCwiY29sdW1u
IjozMCwic291cmNlVVJMIjoiZXhjZXB0aW9uLmpzIn0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAz
ODogY2F0Y2hOZXN0ZWQgY2F1Z2h0IGV4Y2VwdGlvbjogImV4Y2VwdGlvbiBpbiBob3N0IGZ1bmN0
aW9uIgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM4OiBjYXRjaE5lc3RlZCBjYXVnaHQgZXhjZXB0
aW9uOiAiZXhjZXB0aW9uIHN0cmluZyIKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzODogY2F0Y2hO
ZXN0ZWQgY2F1Z2h0IGV4Y2VwdGlvbjogeyJsaW5lIjoxLCJjb2x1bW4iOjYxfQotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDE6IFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2
YWx1YXRpbmcgJyh7fSkuYS5iJykKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzOiBUeXBlRXJyb3I6
IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICcoe30pLmEuYicpCi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgODogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4OiBBbiBh
dHRlbXB0IHdhcyBtYWRlIHRvIHJlZmVyZW5jZSBhIE5vZGUgaW4gYSBjb250ZXh0IHdoZXJlIGl0
IGRvZXMgbm90IGV4aXN0LgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI0OiBleGNlcHRpb24gaW4g
aG9zdCBmdW5jdGlvbgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzOiBleGNlcHRpb24gc3RyaW5n
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg6IFtvYmplY3QgT2JqZWN0XQotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE4OiBFcnJvcjogZXJyb3IgbWVzc2FnZQotRGVidWdnZXIuc2V0UGF1c2VPbkV4
Y2VwdGlvbnMgYWxsCi0KLURlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIC0gYWxsCi1QQVNT
IC0gZGlkIG5vdCBwYXVzZSBvbiBub24tZXhjZXB0aW9uIHN0YXRlbWVudHMKLVBhdXNlZCEKLVJl
c3VtZWQKLVBhdXNlZCEKLVJlc3VtZWQKLVBhdXNlZCEKLVJlc3VtZWQKLVBhdXNlZCEKLVJlc3Vt
ZWQKLVBhdXNlZCEKLVJlc3VtZWQKLVBhdXNlZCEKLVJlc3VtZWQKLVBBU1MgLSBwYXVzZWQgZm9y
IGVhY2ggY2F1Z2h0IGV4Y2VwdGlvbgotUGF1c2VkIQotUmVzdW1lZAotUGF1c2VkIQotUmVzdW1l
ZAotUGF1c2VkIQotUmVzdW1lZAotUGF1c2VkIQotUmVzdW1lZAotUGF1c2VkIQotUmVzdW1lZAot
UGF1c2VkIQotUmVzdW1lZAotUGF1c2VkIQotUmVzdW1lZAotUEFTUyAtIHBhdXNlZCBmb3IgZWFj
aCB1bmNhdWdodCBleGNlcHRpb24KLVBBU1MgLSBkaWQgbm90IHBhdXNlIG9uIG5vbi1leGNlcHRp
b24gc3RhdGVtZW50cwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtYWxsLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtYWxsLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyYzAzZjFhMDFiZGZlNzhkYjE1MmI0MmU3
ZDNkOTEzYWM0Yzg2ZmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25F
eGNlcHRpb25zLWFsbC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTM3ICswLDAgQEAKLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9l
eGNlcHRpb24uanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAg
IHZhciBleHBlY3RQYXVzZSA9IHRydWU7Ci0KLSAgICB2YXIgc3RhdGVtZW50c1dpdGhvdXRFeGNl
cHRpb25zID0gWwotICAgICAgICAiMSsxOyIsCi0gICAgICAgICJub0V4Y2VwdGlvbigpOyIsCi0g
ICAgICAgICJjYXRjaE5lc3RlZChub0V4Y2VwdGlvbiwgNyk7IgotICAgIF07Ci0KLSAgICB2YXIg
Y3VycmVudENhdWdodEV4Y2VwdGlvblN0YXRlbWVudCA9IDA7Ci0gICAgdmFyIHN0YXRlbWVudHNX
aXRoQ2F1Z2h0RXhjZXB0aW9ucyA9IFsKLSAgICAgICAgInRyeXsgKHt9KS5hLmIuYy5kIH0gY2F0
Y2ggKGUpIHsgY29uc29sZS5sb2coJ2NhdWdodCBpbmxpbmU6ICcgKyBKU09OLnN0cmluZ2lmeShl
KSk7IH0iLAotICAgICAgICAiY2F0Y2hOZXN0ZWQoZXhjZXB0aW9uQmFzaWMsIDEpOyIsCi0gICAg
ICAgICJjYXRjaE5lc3RlZChleGNlcHRpb25ET00sIDIpOyIsCi0gICAgICAgICJjYXRjaE5lc3Rl
ZChleGNlcHRpb25Jbkhvc3RGdW5jdGlvbiwgMyk7IiwKLSAgICAgICAgImNhdGNoTmVzdGVkKHRo
cm93U3RyaW5nLCAxMCk7IiwKLSAgICAgICAgImNhdGNoTmVzdGVkKHRocm93UGFyYW0sIDUsIG5l
dyBFcnJvcignZXJyb3IgbWVzc2FnZScpKTsiCi0gICAgXTsKLQotICAgIHZhciBjdXJyZW50VW5j
YXVnaHRFeGNlcHRpb25TdGF0ZW1lbnQgPSAwOwotICAgIHZhciBzdGF0ZW1lbnRzV2l0aFVuY2F1
Z2h0RXhjZXB0aW9ucyA9IFsKLSAgICAgICAgIih7fSkuYS5iLmMuZDsiLAotICAgICAgICAiZXhj
ZXB0aW9uQmFzaWMoKTsiLAotICAgICAgICAiZXhjZXB0aW9uRE9NKCk7IiwKLSAgICAgICAgImV4
Y2VwdGlvbkluSG9zdEZ1bmN0aW9uKCk7IiwKLSAgICAgICAgInRocm93U3RyaW5nKCk7IiwKLSAg
ICAgICAgInRocm93UGFyYW0oe3g6MX0pOyIsCi0gICAgICAgICJ0aHJvd1BhcmFtKG5ldyBFcnJv
cignZXJyb3IgbWVzc2FnZScpKTsiCi0gICAgXTsKLQotICAgIHZhciBleHRyYUNhdWdodEV4Y2Vw
dGlvblBhdXNlcyA9IDA7Ci0gICAgdmFyIGV4dHJhVW5jYXVnaHRFeGNlcHRpb25QYXVzZXMgPSAw
OwotCi0gICAgZnVuY3Rpb24gZXZhbHVhdGVTdGF0ZW1lbnRzKGxpc3QsIGNhbGxiYWNrKQotICAg
IHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgKytpKSB7Ci0gICAg
ICAgICAgICB2YXIgc3RhdGVtZW50ID0gbGlzdFtpXTsKLSAgICAgICAgICAgIHZhciBsYXN0ID0g
aSA9PT0gbGlzdC5sZW5ndGggLSAxOwotICAgICAgICAgICAgdmFyIHJlc3BvbnNlQ2FsbGJhY2sg
PSBsYXN0ID8gZnVuY3Rpb24oKSB7IHNldFRpbWVvdXQoY2FsbGJhY2ssIDEwKTsgfSA6IGZ1bmN0
aW9uKCl7fTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUu
ZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7ICIgKyBzdGF0
ZW1lbnQgKyAiIH0sIDApOyJ9LCByZXNwb25zZUNhbGxiYWNrKTsKLSAgICAgICAgfQotICAgIH0K
LQotICAgIGZ1bmN0aW9uIGV2YWx1YXRlRXhwZWN0ZWROb1BhdXNlcyhjYWxsYmFjaykKLSAgICB7
Ci0gICAgICAgIHZhciBzdGF0ZW1lbnRzID0gc3RhdGVtZW50c1dpdGhvdXRFeGNlcHRpb25zOwot
ICAgICAgICBldmFsdWF0ZVN0YXRlbWVudHMoc3RhdGVtZW50cywgZnVuY3Rpb24oKSB7Ci0gICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUyAtIGRpZCBub3QgcGF1c2Ugb24gbm9uLWV4
Y2VwdGlvbiBzdGF0ZW1lbnRzIik7Ci0gICAgICAgICAgICBjYWxsYmFjaygpOwotICAgICAgICB9
KTsKLSAgICB9Ci0KLQotICAgIHZhciB0cmlnZ2VyTmV4dCA9IHRyaWdnZXJOZXh0Q2F1Z2h0RXhj
ZXB0aW9uOwotCi0gICAgZnVuY3Rpb24gdHJpZ2dlck5leHRDYXVnaHRFeGNlcHRpb24oKQotICAg
IHsKLSAgICAgICAgLy8gRXZhbHVhdGUgc3RhdGVtZW50IGFuZCBleHBlY3QgdG8gcGF1c2UuCi0g
ICAgICAgIGlmIChjdXJyZW50Q2F1Z2h0RXhjZXB0aW9uU3RhdGVtZW50IDwgc3RhdGVtZW50c1dp
dGhDYXVnaHRFeGNlcHRpb25zLmxlbmd0aCkgewotICAgICAgICAgICAgdmFyIHN0YXRlbWVudCA9
IHN0YXRlbWVudHNXaXRoQ2F1Z2h0RXhjZXB0aW9uc1tjdXJyZW50Q2F1Z2h0RXhjZXB0aW9uU3Rh
dGVtZW50KytdOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGlt
ZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgIiArIHN0
YXRlbWVudCArICIgfSwgMCk7In0pOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0K
LSAgICAgICAgLy8gRklYTUU6IDxodHRwczovL3dlYmtpdC5vcmcvYi8xMjExMDg+IFdlYiBJbnNw
ZWN0b3IgZ2V0cyBwYXVzZWQgdHdpY2Ugd2hlbiB0aGVyZSBpcyBhbiBleGNlcHRpb24gaW4gaG9z
dCBmdW5jdGlvbgotICAgICAgICBpZiAoZXh0cmFDYXVnaHRFeGNlcHRpb25QYXVzZXMtLSA+IDAp
Ci0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgLy8gRG9uZSBldmFsdWF0aW5nIGNhdWdo
dCBleGNlcHRpb25zIHN0YXRlbWVudHMuIE1vdmUgb24gdG8gdW5jYXVnaHQgZXhjZXB0aW9ucy4K
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1MgLSBwYXVzZWQgZm9yIGVhY2ggY2F1Z2h0
IGV4Y2VwdGlvbiIpOwotICAgICAgICB0cmlnZ2VyTmV4dCA9IHRyaWdnZXJOZXh0VW5jYXVnaHRF
eGNlcHRpb247Ci0gICAgICAgIHRyaWdnZXJOZXh0KCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24g
dHJpZ2dlck5leHRVbmNhdWdodEV4Y2VwdGlvbigpCi0gICAgewotICAgICAgICAvLyBFdmFsdWF0
ZSBzdGF0ZW1lbnQgYW5kIGV4cGVjdCB0byBwYXVzZS4KLSAgICAgICAgaWYgKGN1cnJlbnRVbmNh
dWdodEV4Y2VwdGlvblN0YXRlbWVudCA8IHN0YXRlbWVudHNXaXRoVW5jYXVnaHRFeGNlcHRpb25z
Lmxlbmd0aCkgewotICAgICAgICAgICAgdmFyIHN0YXRlbWVudCA9IHN0YXRlbWVudHNXaXRoVW5j
YXVnaHRFeGNlcHRpb25zW2N1cnJlbnRVbmNhdWdodEV4Y2VwdGlvblN0YXRlbWVudCsrXTsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7
ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7ICIgKyBzdGF0ZW1lbnQgKyAiIH0s
IDApOyJ9KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIEZJ
WE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTIxMTA4PiBXZWIgSW5zcGVjdG9yIGdldHMgcGF1
c2VkIHR3aWNlIHdoZW4gdGhlcmUgaXMgYW4gZXhjZXB0aW9uIGluIGhvc3QgZnVuY3Rpb24KLSAg
ICAgICAgaWYgKGV4dHJhVW5jYXVnaHRFeGNlcHRpb25QYXVzZXMtLSA+IDApCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgLy8gRG9uZSBldmFsdWF0aW5nIHN0YXRlbWVudHMgdG8gcGF1
c2UuIEV2YWx1YXRlIHNvbWUgbW9yZSB3ZSBkbyBub3QgZXhwZWN0IHRvIHBhdXNlLgotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUyAtIHBhdXNlZCBmb3IgZWFjaCB1bmNhdWdodCBleGNl
cHRpb24iKTsKLSAgICAgICAgZXhwZWN0UGF1c2UgPSBmYWxzZTsKLSAgICAgICAgZXZhbHVhdGVF
eHBlY3RlZE5vUGF1c2VzKGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5j
b21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0KLSAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCB7c3RhdGU6ICJhbGwi
fSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVj
a0ZvckVycm9yKHJlc3BvbnNlT2JqZWN0KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRl
YnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIC0gYWxsIik7Ci0gICAgICAgIGV2YWx1YXRlRXhw
ZWN0ZWROb1BhdXNlcyhmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIGV4cGVjdFBhdXNlID0gdHJ1
ZTsKLSAgICAgICAgICAgIHRyaWdnZXJOZXh0KCk7Ci0gICAgICAgIH0pOwotICAgIH0pOwotCi0g
ICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnBhdXNlZCJdID0gZnVuY3Rp
b24obWVzc2FnZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQYXVz
ZWQhIik7Ci0KLSAgICAgICAgaWYgKCFleHBlY3RQYXVzZSkgewotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIkZBSUwgLSBkZWJ1Z2dlciBwYXVzZWQgd2hlbiB3ZSBkaWQgbm90IGV4cGVj
dCB0byIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENv
bW1hbmQoIkRlYnVnZ2VyLnJlc3VtZSIsIHt9KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0
LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucmVzdW1lZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVj
dCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJSZXN1bWVkIik7Ci0gICAgICAg
IHRyaWdnZXJOZXh0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Ci08cD5EZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyBhbGw8L3A+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlv
bnMtbm9uZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNiYTAx
YzUxOWFhYzJhZjI1MGQ5OWQ2MDk4MmQ4MDllMzVjMTVhNGYuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLW5vbmUtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsMTcgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IGNhdWdodCBp
bmxpbmU6IHsibGluZSI6MSwiY29sdW1uIjozNn0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzODog
Y2F0Y2hOZXN0ZWQgY2F1Z2h0IGV4Y2VwdGlvbjogeyJsaW5lIjozLCJjb2x1bW4iOjExLCJzb3Vy
Y2VVUkwiOiJleGNlcHRpb24uanMifQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM4OiBjYXRjaE5l
c3RlZCBjYXVnaHQgZXhjZXB0aW9uOiB7ImNvZGUiOjgsIm5hbWUiOiJOb3RGb3VuZEVycm9yIiwi
bWVzc2FnZSI6Ik5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gOCIsImxpbmUiOjgsImNvbHVt
biI6MzAsInNvdXJjZVVSTCI6ImV4Y2VwdGlvbi5qcyJ9Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUg
Mzg6IGNhdGNoTmVzdGVkIGNhdWdodCBleGNlcHRpb246ICJleGNlcHRpb24gaW4gaG9zdCBmdW5j
dGlvbiIKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzODogY2F0Y2hOZXN0ZWQgY2F1Z2h0IGV4Y2Vw
dGlvbjogImV4Y2VwdGlvbiBzdHJpbmciCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzg6IGNhdGNo
TmVzdGVkIGNhdWdodCBleGNlcHRpb246IHsibGluZSI6MSwiY29sdW1uIjo2MX0KLUNPTlNPTEUg
TUVTU0FHRTogbGluZSAzOiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChl
dmFsdWF0aW5nICcoe30pLmEuYicpCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgODogTm90Rm91bmRF
cnJvcjogRE9NIEV4Y2VwdGlvbiA4OiBBbiBhdHRlbXB0IHdhcyBtYWRlIHRvIHJlZmVyZW5jZSBh
IE5vZGUgaW4gYSBjb250ZXh0IHdoZXJlIGl0IGRvZXMgbm90IGV4aXN0LgotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDI0OiBleGNlcHRpb24gaW4gaG9zdCBmdW5jdGlvbgotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDEzOiBleGNlcHRpb24gc3RyaW5nCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg6IFtv
YmplY3QgT2JqZWN0XQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBFcnJvcjogZXJyb3IgbWVz
c2FnZQotRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgbm9uZQotCi1EZWJ1Z2dlci5zZXRQ
YXVzZU9uRXhjZXB0aW9ucyAtIG5vbmUKLVBBU1M6IE5vIHBhdXNlcwotCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlv
bnMtbm9uZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dFBhdXNlT25FeGNlcHRpb25zLW5vbmUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZWQ2ZWM0OTA1MTM2ODZjNDk3OTI1NTFmODkwN2Y1YTYyMmI1OGNhYS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsNDcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL2V4Y2VwdGlvbi5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
RGVidWdnZXIuZW5hYmxlIiwge30pOwotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRl
YnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIiwge3N0YXRlOiAibm9uZSJ9LCBmdW5jdGlvbihy
ZXNwb25zZU9iamVjdCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVz
cG9uc2VPYmplY3QpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRGVidWdnZXIuc2V0UGF1
c2VPbkV4Y2VwdGlvbnMgLSBub25lIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7IDErMTsgfSwgMCk7In0pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJS
dW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBu
b0V4Y2VwdGlvbigpOyB9LCAwKTsifSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7IGNhdGNoTmVzdGVkKG5vRXhjZXB0aW9uLCA3KTsgfSwgMCk7In0pOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0cnl7ICh7fSkuYS5iLmMuZCB9IGNhdGNoIChlKSB7IGNv
bnNvbGUubG9nKCdjYXVnaHQgaW5saW5lOiAnICsgSlNPTi5zdHJpbmdpZnkoZSkpOyB9IH0sIDAp
OyJ9KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0
ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgY2F0Y2hOZXN0ZWQoZXhj
ZXB0aW9uQmFzaWMsIDEpOyB9LCAwKTsifSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENv
bW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7IGNhdGNoTmVzdGVkKGV4Y2VwdGlvbkRPTSwgMik7IH0sIDApOyJ9KTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9u
OiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgY2F0Y2hOZXN0ZWQoZXhjZXB0aW9uSW5Ib3N0RnVu
Y3Rpb24sIDMpOyB9LCAwKTsifSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
IGNhdGNoTmVzdGVkKHRocm93U3RyaW5nLCAxMCk7IH0sIDApOyJ9KTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0
VGltZW91dChmdW5jdGlvbigpIHsgY2F0Y2hOZXN0ZWQodGhyb3dQYXJhbSwgNSwgbmV3IEVycm9y
KCdlcnJvciBtZXNzYWdlJykpOyB9LCAwKTsifSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2Vu
ZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7IHt9LmEuYi5jLmQ7IH0sIDApOyJ9KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChm
dW5jdGlvbigpIHsgZXhjZXB0aW9uQmFzaWMoKTsgfSwgMCk7In0pOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeyBleGNlcHRpb25ET00oKTsgfSwgMCk7In0pOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246
ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBleGNlcHRpb25Jbkhvc3RGdW5jdGlvbigpOyB9LCAw
KTsifSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVh
dGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRocm93U3RyaW5nKCk7
IH0sIDApOyJ9KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5l
dmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgdGhyb3dQYXJh
bSh7eDoxfSk7IH0sIDApOyJ9KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
UnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsg
dGhyb3dQYXJhbShuZXcgRXJyb3IoJ2Vycm9yIG1lc3NhZ2UnKSk7IH0sIDApOyJ9LCBmdW5jdGlv
bigpIHsKLSAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1M6IE5vIHBhdXNlcyIpOwotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICB9LCAxMCk7Ci0gICAg
ICAgIH0pOwotICAgIH0pOwotCi0gICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVn
Z2VyLnBhdXNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJQYXVzZWQhIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJG
QUlMIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQot
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5EZWJ1Z2dl
ci5zZXRQYXVzZU9uRXhjZXB0aW9ucyBub25lPC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNlT25F
eGNlcHRpb25zLXVuY2F1Z2h0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy11bmNhdWdodC1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM0ZTE0ZjZkMWJlZGU4ZTkyODQyN2M3
ODgyOTMwNjJkYmE2MDQ5YWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFBhdXNl
T25FeGNlcHRpb25zLXVuY2F1Z2h0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQx
ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBjYXVnaHQgaW5saW5lOiB7ImxpbmUi
OjEsImNvbHVtbiI6MzZ9Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzg6IGNhdGNoTmVzdGVkIGNh
dWdodCBleGNlcHRpb246IHsibGluZSI6MywiY29sdW1uIjoxMSwic291cmNlVVJMIjoiZXhjZXB0
aW9uLmpzIn0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzODogY2F0Y2hOZXN0ZWQgY2F1Z2h0IGV4
Y2VwdGlvbjogeyJjb2RlIjo4LCJuYW1lIjoiTm90Rm91bmRFcnJvciIsIm1lc3NhZ2UiOiJOb3RG
b3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDgiLCJsaW5lIjo4LCJjb2x1bW4iOjMwLCJzb3VyY2VV
UkwiOiJleGNlcHRpb24uanMifQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM4OiBjYXRjaE5lc3Rl
ZCBjYXVnaHQgZXhjZXB0aW9uOiAiZXhjZXB0aW9uIGluIGhvc3QgZnVuY3Rpb24iCi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgMzg6IGNhdGNoTmVzdGVkIGNhdWdodCBleGNlcHRpb246ICJleGNlcHRp
b24gc3RyaW5nIgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM4OiBjYXRjaE5lc3RlZCBjYXVnaHQg
ZXhjZXB0aW9uOiB7ImxpbmUiOjEsImNvbHVtbiI6NjF9Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTogVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnKHt9
KS5hLmInKQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM6IFR5cGVFcnJvcjogdW5kZWZpbmVkIGlz
IG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJyh7fSkuYS5iJykKLUNPTlNPTEUgTUVTU0FHRTog
bGluZSA4OiBOb3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDg6IEFuIGF0dGVtcHQgd2FzIG1h
ZGUgdG8gcmVmZXJlbmNlIGEgTm9kZSBpbiBhIGNvbnRleHQgd2hlcmUgaXQgZG9lcyBub3QgZXhp
c3QuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjQ6IGV4Y2VwdGlvbiBpbiBob3N0IGZ1bmN0aW9u
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTM6IGV4Y2VwdGlvbiBzdHJpbmcKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSAxODogW29iamVjdCBPYmplY3RdCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg6
IEVycm9yOiBlcnJvciBtZXNzYWdlCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogY2F1Z2h0IGlu
bGluZTogeyJsaW5lIjoxLCJjb2x1bW4iOjM2fQotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM4OiBj
YXRjaE5lc3RlZCBjYXVnaHQgZXhjZXB0aW9uOiB7ImxpbmUiOjMsImNvbHVtbiI6MTEsInNvdXJj
ZVVSTCI6ImV4Y2VwdGlvbi5qcyJ9Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzg6IGNhdGNoTmVz
dGVkIGNhdWdodCBleGNlcHRpb246IHsiY29kZSI6OCwibmFtZSI6Ik5vdEZvdW5kRXJyb3IiLCJt
ZXNzYWdlIjoiTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiwibGluZSI6OCwiY29sdW1u
IjozMCwic291cmNlVVJMIjoiZXhjZXB0aW9uLmpzIn0KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAz
ODogY2F0Y2hOZXN0ZWQgY2F1Z2h0IGV4Y2VwdGlvbjogImV4Y2VwdGlvbiBpbiBob3N0IGZ1bmN0
aW9uIgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM4OiBjYXRjaE5lc3RlZCBjYXVnaHQgZXhjZXB0
aW9uOiAiZXhjZXB0aW9uIHN0cmluZyIKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzODogY2F0Y2hO
ZXN0ZWQgY2F1Z2h0IGV4Y2VwdGlvbjogeyJsaW5lIjoxLCJjb2x1bW4iOjYxfQotRGVidWdnZXIu
c2V0UGF1c2VPbkV4Y2VwdGlvbnMgdW5jYXVnaHQKLQotRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2Vw
dGlvbnMgLSB1bmNhdWdodAotUEFTUyAtIGRpZCBub3QgcGF1c2Ugb24gbm9uLWV4Y2VwdGlvbiBz
dGF0ZW1lbnRzIG9yIGNhdWdodCBleGNlcHRpb24gc3RhdGVtZW50cwotUGF1c2VkIQotUmVzdW1l
ZAotUGF1c2VkIQotUmVzdW1lZAotUGF1c2VkIQotUmVzdW1lZAotUGF1c2VkIQotUmVzdW1lZAot
UGF1c2VkIQotUmVzdW1lZAotUGF1c2VkIQotUmVzdW1lZAotUGF1c2VkIQotUmVzdW1lZAotUEFT
UyAtIHBhdXNlZCBmb3IgZWFjaCB1bmNhdWdodCBleGNlcHRpb24KLVBBU1MgLSBkaWQgbm90IHBh
dXNlIG9uIG5vbi1leGNlcHRpb24gc3RhdGVtZW50cyBvciBjYXVnaHQgZXhjZXB0aW9uIHN0YXRl
bWVudHMKLVBBU1MKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLXVuY2F1Z2h0Lmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtdW5jYXVn
aHQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDZiMmIyNjcxNjE2ZTAyNGFl
NmVkNDg1NjlkYWMwYzcwN2IwY2ZmZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0
UGF1c2VPbkV4Y2VwdGlvbnMtdW5jYXVnaHQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDExNSAr
MCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvZXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0
ZXN0KCkKLXsKLSAgICB2YXIgZXhwZWN0UGF1c2UgPSBmYWxzZTsKLQotICAgIHZhciBzdGF0ZW1l
bnRzV2l0aG91dEV4Y2VwdGlvbnMgPSBbCi0gICAgICAgICIxKzE7IiwKLSAgICAgICAgIm5vRXhj
ZXB0aW9uKCk7IiwKLSAgICAgICAgImNhdGNoTmVzdGVkKG5vRXhjZXB0aW9uLCA3KTsiCi0gICAg
XTsKLQotICAgIHZhciBzdGF0ZW1lbnRzV2l0aENhdWdodEV4Y2VwdGlvbnMgPSBbCi0gICAgICAg
ICJ0cnl7ICh7fSkuYS5iLmMuZCB9IGNhdGNoIChlKSB7IGNvbnNvbGUubG9nKCdjYXVnaHQgaW5s
aW5lOiAnICsgSlNPTi5zdHJpbmdpZnkoZSkpOyB9IiwKLSAgICAgICAgImNhdGNoTmVzdGVkKGV4
Y2VwdGlvbkJhc2ljLCAxKTsiLAotICAgICAgICAiY2F0Y2hOZXN0ZWQoZXhjZXB0aW9uRE9NLCAy
KTsiLAotICAgICAgICAiY2F0Y2hOZXN0ZWQoZXhjZXB0aW9uSW5Ib3N0RnVuY3Rpb24sIDMpOyIs
Ci0gICAgICAgICJjYXRjaE5lc3RlZCh0aHJvd1N0cmluZywgMTApOyIsCi0gICAgICAgICJjYXRj
aE5lc3RlZCh0aHJvd1BhcmFtLCA1LCBuZXcgRXJyb3IoJ2Vycm9yIG1lc3NhZ2UnKSk7IgotICAg
IF07Ci0KLSAgICB2YXIgY3VycmVudFVuY2F1Z2h0RXhjZXB0aW9uU3RhdGVtZW50ID0gMDsKLSAg
ICB2YXIgc3RhdGVtZW50c1dpdGhVbmNhdWdodEV4Y2VwdGlvbnMgPSBbCi0gICAgICAgICIoe30p
LmEuYi5jLmQ7IiwKLSAgICAgICAgImV4Y2VwdGlvbkJhc2ljKCk7IiwKLSAgICAgICAgImV4Y2Vw
dGlvbkRPTSgpOyIsCi0gICAgICAgICJleGNlcHRpb25Jbkhvc3RGdW5jdGlvbigpOyIsCi0gICAg
ICAgICJ0aHJvd1N0cmluZygpOyIsCi0gICAgICAgICJ0aHJvd1BhcmFtKHt4OjF9KTsiLAotICAg
ICAgICAidGhyb3dQYXJhbShuZXcgRXJyb3IoJ2Vycm9yIG1lc3NhZ2UnKSk7IgotICAgIF07Ci0K
LSAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEyMTEwOD4gV2ViIEluc3BlY3Rv
ciBnZXRzIHBhdXNlZCB0d2ljZSB3aGVuIHRoZXJlIGlzIGFuIGV4Y2VwdGlvbiBpbiBob3N0IGZ1
bmN0aW9uCi0gICAgdmFyIGV4dHJhUGF1c2VzID0gMDsKLQotICAgIGZ1bmN0aW9uIGV2YWx1YXRl
U3RhdGVtZW50cyhsaXN0LCBjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgbGlzdC5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIHN0YXRlbWVudCA9IGxp
c3RbaV07Ci0gICAgICAgICAgICB2YXIgbGFzdCA9IGkgPT09IGxpc3QubGVuZ3RoIC0gMTsKLSAg
ICAgICAgICAgIHZhciByZXNwb25zZUNhbGxiYWNrID0gbGFzdCA/IGZ1bmN0aW9uKCkgeyBzZXRU
aW1lb3V0KGNhbGxiYWNrLCAxMCk7IH0gOiBmdW5jdGlvbigpe307Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJz
ZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyAiICsgc3RhdGVtZW50ICsgIiB9LCAwKTsifSwgcmVzcG9u
c2VDYWxsYmFjayk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBldmFsdWF0ZUV4
cGVjdGVkTm9QYXVzZXMoY2FsbGJhY2spCi0gICAgewotICAgICAgICB2YXIgc3RhdGVtZW50cyA9
IHN0YXRlbWVudHNXaXRob3V0RXhjZXB0aW9ucy5jb25jYXQoc3RhdGVtZW50c1dpdGhDYXVnaHRF
eGNlcHRpb25zKTsKLSAgICAgICAgZXZhbHVhdGVTdGF0ZW1lbnRzKHN0YXRlbWVudHMsIGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1MgLSBkaWQgbm90IHBh
dXNlIG9uIG5vbi1leGNlcHRpb24gc3RhdGVtZW50cyBvciBjYXVnaHQgZXhjZXB0aW9uIHN0YXRl
bWVudHMiKTsKLSAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgIH0pOwotICAgIH0KLQot
ICAgIGZ1bmN0aW9uIHRyaWdnZXJOZXh0VW5jYXVnaHRFeGNlcHRpb24oKQotICAgIHsKLSAgICAg
ICAgLy8gRXZhbHVhdGUgc3RhdGVtZW50IGFuZCBleHBlY3QgdG8gcGF1c2UuCi0gICAgICAgIGlm
IChjdXJyZW50VW5jYXVnaHRFeGNlcHRpb25TdGF0ZW1lbnQgPCBzdGF0ZW1lbnRzV2l0aFVuY2F1
Z2h0RXhjZXB0aW9ucy5sZW5ndGgpIHsKLSAgICAgICAgICAgIHZhciBzdGF0ZW1lbnQgPSBzdGF0
ZW1lbnRzV2l0aFVuY2F1Z2h0RXhjZXB0aW9uc1tjdXJyZW50VW5jYXVnaHRFeGNlcHRpb25TdGF0
ZW1lbnQrK107Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1l
LmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyAiICsgc3Rh
dGVtZW50ICsgIiB9LCAwKTsifSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQot
ICAgICAgICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEyMTEwOD4gV2ViIEluc3Bl
Y3RvciBnZXRzIHBhdXNlZCB0d2ljZSB3aGVuIHRoZXJlIGlzIGFuIGV4Y2VwdGlvbiBpbiBob3N0
IGZ1bmN0aW9uCi0gICAgICAgIGlmIChleHRyYVBhdXNlcy0tID4gMCkKLSAgICAgICAgICAgIHJl
dHVybjsKLQotICAgICAgICAvLyBEb25lIGV2YWx1YXRpbmcgc3RhdGVtZW50cyB0byBwYXVzZS4g
RXZhbHVhdGUgc29tZSBtb3JlIHdlIGRvIG5vdCBleHBlY3QgdG8gcGF1c2UuCi0gICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJQQVNTIC0gcGF1c2VkIGZvciBlYWNoIHVuY2F1Z2h0IGV4Y2VwdGlv
biIpOwotICAgICAgICBleHBlY3RQYXVzZSA9IGZhbHNlOwotICAgICAgICBldmFsdWF0ZUV4cGVj
dGVkTm9QYXVzZXMoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
UEFTUyIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAg
ICAgfSk7Ci0gICAgfQotCi0KLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dl
ci5lbmFibGUiLCB7fSk7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIu
c2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCB7c3RhdGU6ICJ1bmNhdWdodCJ9LCBmdW5jdGlvbihyZXNw
b25zZU9iamVjdCkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVzcG9u
c2VPYmplY3QpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRGVidWdnZXIuc2V0UGF1c2VP
bkV4Y2VwdGlvbnMgLSB1bmNhdWdodCIpOwotICAgICAgICBldmFsdWF0ZUV4cGVjdGVkTm9QYXVz
ZXMoZnVuY3Rpb24oKSB7Ci0gICAgICAgICAgICBleHBlY3RQYXVzZSA9IHRydWU7Ci0gICAgICAg
ICAgICB0cmlnZ2VyTmV4dFVuY2F1Z2h0RXhjZXB0aW9uKCk7Ci0gICAgICAgIH0pOwotICAgIH0p
OwotCi0gICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnBhdXNlZCJdID0g
ZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJQYXVzZWQhIik7Ci0KLSAgICAgICAgaWYgKCFleHBlY3RQYXVzZSkgewotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coIkZBSUwgLSBkZWJ1Z2dlciBwYXVzZWQgd2hlbiB3ZSBkaWQgbm90
IGV4cGVjdCB0byIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIEluc3BlY3RvclRlc3Qu
c2VuZENvbW1hbmQoIkRlYnVnZ2VyLnJlc3VtZSIsIHt9KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0
b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucmVzdW1lZCJdID0gZnVuY3Rpb24obWVzc2Fn
ZU9iamVjdCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJSZXN1bWVkIik7Ci0g
ICAgICAgIHRyaWdnZXJOZXh0VW5jYXVnaHRFeGNlcHRpb24oKTsKLSAgICB9Ci19Ci08L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPkRlYnVnZ2VyLnNldFBh
dXNlT25FeGNlcHRpb25zIHVuY2F1Z2h0PC9wPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldFZhcmlhYmxlVmFs
dWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldFZhcmlhYmxlVmFsdWUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBkNjljMDk2MWJjZGNmYjFiMmQ0MzM3NTBhOTcwOTE1YThiNWIxYTcwLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRWYXJpYWJsZVZhbHVlLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDQgKzAsMCBAQAotQ2xvc3VyZSByZXR1cm5zOiB7InR5cGUiOiJzdHJpbmci
LCJ2YWx1ZSI6InR0dHRydWU1MjAxMyJ9Ci0gKGV4cGVjdGVkOiAndHR0dHJ1ZTUyMDEzJykKLVBy
b3RvY29sIGNvbW1hbmQgJ0RlYnVnZ2VyLnNldFZhcmlhYmxlVmFsdWUnIGZhaWxlZAotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0VmFyaWFi
bGVWYWx1ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Nl
dFZhcmlhYmxlVmFsdWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWIwY2M2
OTRjNGFiYjA5YWM4MzllMmJjY2U4OTZlOWJlODBkN2U1Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvc2V0VmFyaWFibGVWYWx1ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTgwICsw
LDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgLy8gQSBnZW5lcmFs
LXB1cnBvc2UgZW5naW5lIGZvciBzZW5kaW5nIGEgc2VxdWVuY2Ugb2YgcHJvdG9jb2wgY29tbWFu
ZHMuCi0gICAgLy8gVGhlIGNsaWVudHMgcHJvdmlkZSByZXF1ZXN0cyBhbmQgcmVzcG9uc2UgaGFu
ZGxlcnMsIHdoaWxlIHRoZSBlbmdpbmUgY2F0Y2hlcwotICAgIC8vIGVycm9ycyBhbmQgbWFrZXMg
c3VyZSB0aGF0IG9uY2UgdGhlcmUncyBub3RoaW5nIHRvIGRvIGNvbXBsZXRlVGVzdCgpIGlzIGNh
bGxlZC4KLSAgICAvLyBAcGFyYW0gc3RlcCBpcyBhbiBvYmplY3Qgd2l0aCBjb21tYW5kLCBwYXJh
bXMgYW5kIGNhbGxiYWNrIGZpZWxkcwotICAgIGZ1bmN0aW9uIHJ1blJlcXVlc3RTZXJpZXMoc3Rl
cCkgewotICAgICAgICBwcm9jZXNzU3RlcChzdGVwKTsKLQotICAgICAgICBmdW5jdGlvbiBwcm9j
ZXNzU3RlcChzKSB7Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIHByb2Nlc3NT
dGVwT3JGYWlsKHMpOwotICAgICAgICAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKGUuc3RhY2spOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBm
dW5jdGlvbiBwcm9jZXNzU3RlcE9yRmFpbChzKSB7Ci0gICAgICAgICAgICBpZiAoIXMpIHsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghcy5jb21tYW5kKSB7
Ci0gICAgICAgICAgICAgICAgLy8gQSBzaW1wbGUgbG9vcGJhY2sgc3RlcC4KLSAgICAgICAgICAg
ICAgICB2YXIgbmV4dCA9IHMuY2FsbGJhY2soKTsKLSAgICAgICAgICAgICAgICBwcm9jZXNzU3Rl
cChuZXh0KTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIHZhciBpbm5lckNhbGxiYWNrID0gZnVuY3Rpb24ocmVzcG9uc2UpIHsKLSAgICAgICAg
ICAgICAgICB2YXIgbmV4dDsKLSAgICAgICAgICAgICAgICBpZiAoImVycm9yIiBpbiByZXNwb25z
ZSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoISgiZXJyb3JIYW5kbGVyIiBpbiBzKSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gRXJyb3IgbWVzc2FnZSBpcyBub3QgbG9nZ2VkIGlu
dGVudGlvbmFsbHksIGl0IG1heSBiZSBwbGF0Zm9ybS1zcGVjaWZpYy4KLSAgICAgICAgICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQcm90b2NvbCBjb21tYW5kICciICsgcy5jb21t
YW5kICsgIicgZmFpbGVkIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIHRyeSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBuZXh0ID0gcy5lcnJvckhhbmRsZXIocmVzcG9uc2UuZXJyb3IpOwotICAgICAg
ICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZyhlLnN0YWNrKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCA9IHMuY2FsbGJh
Y2socmVzcG9uc2UucmVzdWx0KTsKLSAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coZS5zdGFjayk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIHByb2Nlc3NTdGVwKG5leHQpOwotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZChzLmNvbW1hbmQsIHMu
cGFyYW1zLCBpbm5lckNhbGxiYWNrKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHZhciBmaXJz
dFN0ZXAgPSB7IGNhbGxiYWNrOiBlbmFibGVEZWJ1Z2dlciB9OwotCi0gICAgcnVuUmVxdWVzdFNl
cmllcyhmaXJzdFN0ZXApOwotCi0gICAgZnVuY3Rpb24gZW5hYmxlRGVidWdnZXIoKSB7Ci0gICAg
ICAgIHJldHVybiB7IGNvbW1hbmQ6ICJEZWJ1Z2dlci5lbmFibGUiLCBwYXJhbXM6IHt9LCBjYWxs
YmFjazogZXZhbEZ1bmN0aW9uIH07Ci0gICAgfQotCi0gICAgLy8gVGVzdGluZyBmdW5jdGlvbi9j
bG9zdXJlIHNjb3Blcy4KLQotICAgIGZ1bmN0aW9uIGV2YWxGdW5jdGlvbihyZXNwb25zZSkgewot
ICAgICAgICB2YXIgZXhwcmVzc2lvbiA9ICIoZnVuY3Rpb24ocCl7dmFyIHI9NTt3aXRoKHt5ZWFy
OjIwMTN9KXtyZXR1cm4gZnVuY3Rpb24gQ2xvc3VyZShxKXtyZXR1cm4gcCtxK3IreWVhcn07fX0p
KCd0dHQnKSI7Ci0gICAgICAgIHJldHVybiB7IGNvbW1hbmQ6ICJSdW50aW1lLmV2YWx1YXRlIiwg
cGFyYW1zOiB7ZXhwcmVzc2lvbjogZXhwcmVzc2lvbn0sIGNhbGxiYWNrOiBjYWxsYmFja0V2YWxG
dW5jdGlvbiB9OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNhbGxiYWNrRXZhbEZ1bmN0aW9uKHJl
c3VsdCkgewotICAgICAgICB2YXIgaWQgPSByZXN1bHQucmVzdWx0Lm9iamVjdElkOwotICAgICAg
ICBpZiAoaWQgPT09IHVuZGVmaW5lZCkKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigib2Jq
ZWN0SWQgaXMgZXhwZWN0ZWQiKTsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUNoZWNrRnVuY3Rpb25T
dGVwQ2hhaW4oaWQpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGNyZWF0ZUNoZWNrRnVuY3Rpb25T
dGVwQ2hhaW4oZnVuY3Rpb25PYmplY3RJZCkgewotICAgICAgICB2YXIgcGFyYW1zID0gewotICAg
ICAgICAgICAgb2JqZWN0SWQ6IGZ1bmN0aW9uT2JqZWN0SWQsCi0gICAgICAgICAgICBmdW5jdGlv
bkRlY2xhcmF0aW9uOiAiZnVuY3Rpb24oKXtyZXR1cm4gdGhpcyh0cnVlKTt9IgotICAgICAgICB9
OwotICAgICAgICByZXR1cm4gewotICAgICAgICAgICAgY29tbWFuZDogIlJ1bnRpbWUuY2FsbEZ1
bmN0aW9uT24iLCBwYXJhbXM6IHBhcmFtcywgY2FsbGJhY2s6IGNhbGxiYWNrTG9nQ2xvc3VyZUV2
YWwKLSAgICAgICAgfTsKLQotICAgICAgICBmdW5jdGlvbiBjYWxsYmFja0xvZ0Nsb3N1cmVFdmFs
KHJlc3VsdCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkNsb3N1cmUgcmV0dXJu
czogIiArIEpTT04uc3RyaW5naWZ5KHJlc3VsdC5yZXN1bHQpKTsKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCIgKGV4cGVjdGVkOiAndHR0dHJ1ZTUyMDEzJykiKTsKLQotICAgICAgICAg
ICAgdmFyIHBhcmFtcyA9IHsKLSAgICAgICAgICAgICAgICBmdW5jdGlvbk9iamVjdElkOiBmdW5j
dGlvbk9iamVjdElkLAotICAgICAgICAgICAgICAgIHNjb3BlTnVtYmVyOiAxLAotICAgICAgICAg
ICAgICAgIHZhcmlhYmxlTmFtZTogInIiLAotICAgICAgICAgICAgICAgIG5ld1ZhbHVlOiB7IHZh
bHVlOiA0IH0KLSAgICAgICAgICAgIH07Ci0gICAgICAgICAgICByZXR1cm4gewotICAgICAgICAg
ICAgICAgIGNvbW1hbmQ6ICJEZWJ1Z2dlci5zZXRWYXJpYWJsZVZhbHVlIiwgcGFyYW1zOiBwYXJh
bXMsIGNhbGxiYWNrOiBzZXRWYXJpYWJsZUNhbGxiYWNrCi0gICAgICAgICAgICB9OwotICAgICAg
ICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gc2V0VmFyaWFibGVDYWxsYmFjaygpIHsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJEZWJ1Z2dlci5zZXRWYXJpYWJsZVZhbHVlIE9LIik7Ci0K
LSAgICAgICAgICAgIHZhciBwYXJhbXMgPSB7Ci0gICAgICAgICAgICAgICAgb2JqZWN0SWQ6IGZ1
bmN0aW9uT2JqZWN0SWQsCi0gICAgICAgICAgICAgICAgZnVuY3Rpb25EZWNsYXJhdGlvbjogImZ1
bmN0aW9uKCl7cmV0dXJuIHRoaXModHJ1ZSk7fSIKLSAgICAgICAgICAgIH07Ci0gICAgICAgICAg
ICByZXR1cm4gewotICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICJSdW50aW1lLmNhbGxGdW5jdGlv
bk9uIiwgcGFyYW1zOiBwYXJhbXMsIGNhbGxiYWNrOiBjYWxsYmFja0xvZ0Nsb3N1cmVFdmFsMgot
ICAgICAgICAgICAgfTsKLQotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tM
b2dDbG9zdXJlRXZhbDIocmVzdWx0KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
Q2xvc3VyZSByZXR1cm5zOiAiICsgSlNPTi5zdHJpbmdpZnkocmVzdWx0LnJlc3VsdCkpOwotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiAoZXhwZWN0ZWQ6ICd0dHR0cnVlNDIwMTMnKSIp
OwotCi0gICAgICAgICAgICB2YXIgcGFyYW1zID0gewotICAgICAgICAgICAgICAgIC8vIE5vIHRh
cmdldCBpcyBzcGVjaWZpZWQKLSAgICAgICAgICAgICAgICBzY29wZU51bWJlcjogMSwKLSAgICAg
ICAgICAgICAgICB2YXJpYWJsZU5hbWU6ICJyIiwKLSAgICAgICAgICAgICAgICBuZXdWYWx1ZTog
eyB2YWx1ZTogNCB9Ci0gICAgICAgICAgICB9OwotICAgICAgICAgICAgcmV0dXJuIHsKLSAgICAg
ICAgICAgICAgICBjb21tYW5kOiAiRGVidWdnZXIuc2V0VmFyaWFibGVWYWx1ZSIsIHBhcmFtczog
cGFyYW1zLCBlcnJvckhhbmRsZXI6IHNldFZhcmlhYmxlRXJyb3JDYWxsYmFjazMKLSAgICAgICAg
ICAgIH07Ci0gICAgICAgIH0KLQotICAgICAgICBmdW5jdGlvbiBzZXRWYXJpYWJsZUVycm9yQ2Fs
bGJhY2szKGVycm9yKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRXhwZWN0ZWQg
ZXJyb3I6ICIgKyBKU09OLnN0cmluZ2lmeShlcnJvcikpOwotCi0gICAgICAgICAgICB2YXIgcGFy
YW1zID0gewotICAgICAgICAgICAgICAgIGZ1bmN0aW9uT2JqZWN0SWQ6IGZ1bmN0aW9uT2JqZWN0
SWQsCi0gICAgICAgICAgICAgICAgc2NvcGVOdW1iZXI6IDEwMCwgLy8gV3Jvbmcgc2NvcGUgbnVt
YmVyCi0gICAgICAgICAgICAgICAgdmFyaWFibGVOYW1lOiAiciIsCi0gICAgICAgICAgICAgICAg
bmV3VmFsdWU6IHsgdmFsdWU6IDQgfQotICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIHJldHVy
biB7Ci0gICAgICAgICAgICAgICAgY29tbWFuZDogIkRlYnVnZ2VyLnNldFZhcmlhYmxlVmFsdWUi
LCBwYXJhbXM6IHBhcmFtcywgZXJyb3JIYW5kbGVyOiBzZXRWYXJpYWJsZUVycm9yQ2FsbGJhY2s0
Ci0gICAgICAgICAgICB9OwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gc2V0VmFyaWFi
bGVFcnJvckNhbGxiYWNrNChlcnJvcikgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
IkV4cGVjdGVkIGVycm9yIik7Ci0KLSAgICAgICAgICAgIHZhciBwYXJhbXMgPSB7Ci0gICAgICAg
ICAgICAgICAgZnVuY3Rpb25PYmplY3RJZDogZnVuY3Rpb25PYmplY3RJZCwKLSAgICAgICAgICAg
ICAgICBzY29wZU51bWJlcjogMSwKLSAgICAgICAgICAgICAgICB2YXJpYWJsZU5hbWU6ICJiYWQi
LCAvLyBXcm9uZyB2YXJpYWJsZSBuYW1lCi0gICAgICAgICAgICAgICAgbmV3VmFsdWU6IHsgdmFs
dWU6IDQgfQotICAgICAgICAgICAgfTsKLSAgICAgICAgICAgIHJldHVybiB7Ci0gICAgICAgICAg
ICAgICAgY29tbWFuZDogIkRlYnVnZ2VyLnNldFZhcmlhYmxlVmFsdWUiLCBwYXJhbXM6IHBhcmFt
cywgZXJyb3JIYW5kbGVyOiBzZXRWYXJpYWJsZUVycm9yQ2FsbGJhY2s1Ci0gICAgICAgICAgICB9
OwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gc2V0VmFyaWFibGVFcnJvckNhbGxiYWNr
NShlcnJvcikgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkV4cGVjdGVkIGVycm9y
Iik7Ci0KLSAgICAgICAgICAgIC8vIEVuZCBvZiB0ZXN0LgotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICB9Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvdGVybWluYXRlLWRlZGljYXRlZC13b3JrZXItd2hpbGUt
cGF1c2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci90ZXJtaW5hdGUtZGVkaWNhdGVkLXdvcmtlci13aGlsZS1wYXVzZWQtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNjhiYjBmZjI5ZDY3M2IwNmYxNDFiYjJj
NjUwYzhiMWYzYzY1MDcyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci90ZXJtaW5hdGUt
ZGVkaWNhdGVkLXdvcmtlci13aGlsZS1wYXVzZWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsOSArMCwwIEBACi1UZXN0IHRoYXQgaW5zcGVjdGVkIHBhZ2Ugd29uJ3QgY3Jhc2ggaWYg
aW5zcGVjdGVkIHdvcmtlciBpcyB0ZXJtaW5hdGVkIHdoaWxlIGl0IGlzIHBhdXNlZC4gVGVzdCBw
YXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaC4KLQotQnVnIDEwMTA2NS4KLVN0YXJ0ZWQgd29ya2Vy
Ci1Xb3JrZXIgY3JlYXRlZAotZGlkQ29ubmVjdFRvV29ya2VyCi1Xb3JrZXIgcGF1c2VkCi1TVUND
RVNTOiBEaWQgdGVybWluYXRlIHBhdXNlZCB3b3JrZXIKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Rlcm1pbmF0ZS1kZWRpY2F0ZWQtd29ya2Vy
LXdoaWxlLXBhdXNlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL3Rlcm1pbmF0ZS1kZWRpY2F0ZWQtd29ya2VyLXdoaWxlLXBhdXNlZC5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NWJjM2Y3OGYxZGIzYjg0YzQ1ZWFlNjhkODViNjlkYjg2
N2E1YjVhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci90ZXJtaW5hdGUtZGVkaWNhdGVk
LXdvcmtlci13aGlsZS1wYXVzZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotdmFyIHdvcmtlcjsKLWZ1bmN0aW9uIHN0YXJ0V29ya2VyQW5kUnVuVGVz
dCgpCi17Ci0gICAgd29ya2VyID0gbmV3IFdvcmtlcigicmVzb3VyY2VzL2RlZGljYXRlZC13b3Jr
ZXIuanMiKTsKLSAgICB3b3JrZXIub25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsgfTsKLSAg
ICB3b3JrZXIucG9zdE1lc3NhZ2UoMSk7Ci0gICAgbG9nKCJTdGFydGVkIHdvcmtlciIpOwotICAg
IHJ1blRlc3QoKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgdmFyIHdvcmtlcklkOwot
ICAgIHZhciB3b3JrZXJSZXF1ZXN0SWQgPSAxOwotICAgIGZ1bmN0aW9uIHNlbmRDb21tYW5kVG9X
b3JrZXIobWV0aG9kLCBwYXJhbXMpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRD
b21tYW5kKCJXb3JrZXIuc2VuZE1lc3NhZ2VUb1dvcmtlciIsIHsKLSAgICAgICAgICAgICJ3b3Jr
ZXJJZCI6IHdvcmtlcklkLAotICAgICAgICAgICAgIm1lc3NhZ2UiOiB7Ci0gICAgICAgICAgICAg
ICAgIm1ldGhvZCI6IG1ldGhvZCwKLSAgICAgICAgICAgICAgICAicGFyYW1zIjogcGFyYW1zLAot
ICAgICAgICAgICAgICAgICJpZCI6IHdvcmtlclJlcXVlc3RJZCsrCi0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0pOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIldvcmtl
ci5lbmFibGUiLCB7fSwgZnVuY3Rpb24obWVzc2FnZU9iamVjdCkgewotICAgICAgICBpZiAoImVy
cm9yIiBpbiBtZXNzYWdlT2JqZWN0KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
RkFJTDogQ291bGRuJ3QgZW5hYmxlIHdvcmtlciBkZWJ1Z2dlcjogIiArIG1lc3NhZ2VPYmplY3Qu
ZXJyb3IubWVzc2FnZSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgp
OwotICAgICAgICB9Ci0gICAgfSk7Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsi
V29ya2VyLndvcmtlckNyZWF0ZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCi0gICAgewot
ICAgICAgICB3b3JrZXJJZCA9IG1lc3NhZ2VPYmplY3RbInBhcmFtcyJdWyJ3b3JrZXJJZCJdOwot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiV29ya2VyIGNyZWF0ZWQiKTsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiV29ya2VyLmNvbm5lY3RUb1dvcmtlciIsIHsid29ya2Vy
SWQiOiB3b3JrZXJJZH0sIGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJkaWRDb25uZWN0VG9Xb3JrZXIiKTsKLSAgICAgICAgICAgIHNlbmRD
b21tYW5kVG9Xb3JrZXIoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKLSAgICAgICAgICAgIHNlbmRD
b21tYW5kVG9Xb3JrZXIoIkRlYnVnZ2VyLnBhdXNlIiwge30pOwotICAgICAgICB9KTsKLSAgICB9
Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiV29ya2VyLmRpc3BhdGNoTWVzc2Fn
ZUZyb21Xb3JrZXIiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCi0gICAgewotICAgICAgICB2
YXIgbWVzc2FnZSA9IG1lc3NhZ2VPYmplY3RbInBhcmFtcyJdWyJtZXNzYWdlIl07Ci0gICAgICAg
IGlmIChtZXNzYWdlWyJtZXRob2QiXSA9PT0gIkRlYnVnZ2VyLnBhdXNlZCIpIHsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJXb3JrZXIgcGF1c2VkIik7Ci0gICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwgeyJleHByZXNzaW9uIjog
Indvcmtlci50ZXJtaW5hdGUoKSJ9LCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlNVQ0NFU1M6IERpZCB0ZXJtaW5hdGUgcGF1c2Vk
IHdvcmtlciIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7
Ci0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHkgb25Mb2FkPSJzdGFydFdvcmtlckFuZFJ1blRlc3QoKTsiPgotPHA+VGVzdCB0aGF0
IGluc3BlY3RlZCBwYWdlIHdvbid0IGNyYXNoIGlmIGluc3BlY3RlZCB3b3JrZXIgaXMgdGVybWlu
YXRlZCB3aGlsZSBpdCBpcyBwYXVzZWQuIFRlc3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2gu
PC9wPgotPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
MTA2NSI+QnVnIDEwMTA2NS48L2E+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tLWRlYnVnZ2VyL25vZGUtcmVtb3ZlZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tLWRlYnVnZ2VyL25v
ZGUtcmVtb3ZlZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcw
OWFiNjI0ZDdkOTRlNTRkYWQ1ZmJjNjViYzYxZDA2N2EyYmQ2YzIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2RvbS1kZWJ1Z2dlci9ub2RlLXJlbW92ZWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsOCArMCwwIEBACi1UZXN0aW5nIHRoYXQgRE9NLmNoaWxkTm9kZVJlbW92ZWQgaXMgY29y
cmVjdGx5IHRyaWdnZXJlZCBldmVuIHdoZW4gdGhlIGVsZW1lbnQgaXMgbW92ZWQgd2hpbGUgcGF1
c2VkIGluIHRoZSBkZWJ1Z2dlciBvbiBhIERPTURlYnVnZ2VyICJub2RlLXJlbW92ZWQiIGJyZWFr
cG9pbnQuCi0KLUZvdW5kIDxzY3JpcHQ+Ci1TdG9wcGVkIG9uIERPTSBicmVha3BvaW50Ci1QQVNT
OiBvbkNoaWxkTm9kZVJlbW92ZWQgY2FsbGVkIGZvciAjdGFyZ2V0X2VsZW1lbnQKLVBBU1M6IG9u
Q2hpbGROb2RlSW5zZXJ0ZWQgY2FsbGVkIGZvciBwYXJlbnQgbm9kZSAjZmluYWxfY29udGFpbmVy
Ci1QQVNTOiBvbkNoaWxkTm9kZUluc2VydGVkIGNhbGxlZCBmb3IgY2hpbGQgbm9kZSAjdGFyZ2V0
X2VsZW1lbnQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rv
bS1kZWJ1Z2dlci9ub2RlLXJlbW92ZWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDI4ODBmMTEzOTc5ZTQ0NGE2YzQ1ZTBhNGVkMmE3YTYxMmE5ZjFhNzYuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL2RvbS1kZWJ1Z2dlci9ub2RlLXJlbW92ZWQuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDE0MyArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3By
b3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXdpbmRvdy5vbmxvYWQgPSBydW5U
ZXN0OwotCi1mdW5jdGlvbiByZW1vdmVOb2RlKCkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGFyZ2V0X2VsZW1lbnQiKS5yZW1vdmUoKTsKLX0KLQotZnVuY3Rpb24gbW92ZU5vZGUo
KQotewotICAgIHZhciB0YXJnZXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRh
cmdldF9lbGVtZW50Iik7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbmFsX2NvbnRh
aW5lciIpLmFwcGVuZENoaWxkKHRhcmdldEVsZW1lbnQpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkK
LXsKLSAgICB2YXIgbm9kZXNCeUlkID0ge307Ci0KLSAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFu
ZGxlclsiRE9NLnNldENoaWxkTm9kZXMiXSA9IG9uU2V0Q2hpbGROb2RlczsKLSAgICBJbnNwZWN0
b3JUZXN0LmV2ZW50SGFuZGxlclsiRE9NLmNoaWxkTm9kZVJlbW92ZWQiXSA9IG9uQ2hpbGROb2Rl
UmVtb3ZlZDsKLSAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRE9NLmNoaWxkTm9kZUlu
c2VydGVkIl0gPSBvbkNoaWxkTm9kZUluc2VydGVkOwotICAgIEluc3BlY3RvclRlc3QuZXZlbnRI
YW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IG9uRGVidWdnZXJQYXVzZWQ7Ci0gICAgSW5zcGVj
dG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCJdID0gb25TY3JpcHRQ
YXJzZWQ7Ci0gICAgCi0gICAgZnVuY3Rpb24gY3JlYXRlTm9kZUF0dHJpYnV0ZXNNYXAoYXR0cmli
dXRlcykKLSAgICB7Ci0gICAgICAgIHZhciBhdHRyaWJ1dGVzTWFwID0ge307Ci0gICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgYXR0cmlidXRlcy5sZW5ndGg7IGkgKz0gMikKLSAgICAgICAgICAg
IGF0dHJpYnV0ZXNNYXBbYXR0cmlidXRlc1tpXV0gPSBhdHRyaWJ1dGVzW2kgKyAxXTsKLSAgICAg
ICAgcmV0dXJuIGF0dHJpYnV0ZXNNYXA7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gY29sbGVjdE5v
ZGUobm9kZSkKLSAgICB7Ci0gICAgICAgIGlmIChub2RlLm5vZGVUeXBlID09PSAxKQotICAgICAg
ICAgICAgbm9kZS5hdHRyaWJ1dGVzID0gY3JlYXRlTm9kZUF0dHJpYnV0ZXNNYXAobm9kZS5hdHRy
aWJ1dGVzKTsKLSAgICAgICAgaWYgKG5vZGUuY2hpbGRyZW4pCi0gICAgICAgICAgICBub2RlLmNo
aWxkcmVuLmZvckVhY2goY29sbGVjdE5vZGUpOwotICAgICAgICBub2Rlc0J5SWRbbm9kZS5ub2Rl
SWRdID0gbm9kZTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBub2RlVG9TdHJpbmcobm9kZSkKLSAg
ICB7Ci0gICAgICAgIHN3aXRjaCAobm9kZS5ub2RlVHlwZSkgewotICAgICAgICBjYXNlIDE6Ci0g
ICAgICAgICAgICByZXR1cm4gbm9kZS5sb2NhbE5hbWUgKyAiIyIgKyBub2RlLmF0dHJpYnV0ZXMu
aWQ7Ci0gICAgICAgIGNhc2UgMzoKLSAgICAgICAgICAgIHJldHVybiAiPHRleHQgbm9kZSAiICsg
SlNPTi5zdHJpbmdpZnkobm9kZS5ub2RlVmFsdWUpICsgIj4iOwotICAgICAgICBkZWZhdWx0Ogot
ICAgICAgICAgICAgcmV0dXJuICI8bm9kZVR5cGUgIiArIG5vZGUubm9kZVR5cGUgKyAiPiI7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBnZXROb2RlSWRlbnRpZmllcihub2RlSWQp
Ci0gICAgewotICAgICAgICBpZiAoIW5vZGVJZCkKLSAgICAgICAgICAgIHJldHVybiAiPGludmFs
aWQgbm9kZSBpZD4iOwotICAgICAgICB2YXIgbm9kZSA9IG5vZGVzQnlJZFtub2RlSWRdOwotICAg
ICAgICByZXR1cm4gbm9kZSA/IG5vZGVUb1N0cmluZyhub2RlKSA6ICI8dW5rbm93biBub2RlPiI7
Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gb25TZXRDaGlsZE5vZGVzKHJlc3BvbnNlKQotICAgIHsK
LSAgICAgICAgcmVzcG9uc2UucGFyYW1zLm5vZGVzLmZvckVhY2goY29sbGVjdE5vZGUpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIG9uQ2hpbGROb2RlUmVtb3ZlZChyZXNwb25zZSkKLSAgICB7Ci0g
ICAgICAgIHZhciBub2RlSWQgPSByZXNwb25zZS5wYXJhbXMubm9kZUlkOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydChnZXROb2RlSWRlbnRpZmllcihub2RlSWQpID09PSAiZGl2I3Rhcmdl
dF9lbGVtZW50IiwgIm9uQ2hpbGROb2RlUmVtb3ZlZCBjYWxsZWQgZm9yICN0YXJnZXRfZWxlbWVu
dCIpOwotICAgICAgICBkZWxldGUgbm9kZXNCeUlkW25vZGVJZF07Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gb25DaGlsZE5vZGVJbnNlcnRlZChyZXNwb25zZSkKLSAgICB7Ci0gICAgICAgIGNvbGxl
Y3ROb2RlKHJlc3BvbnNlLnBhcmFtcy5ub2RlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnQoZ2V0Tm9kZUlkZW50aWZpZXIocmVzcG9uc2UucGFyYW1zLnBhcmVudE5vZGVJZCkgPT09ICJk
aXYjZmluYWxfY29udGFpbmVyIiwgIm9uQ2hpbGROb2RlSW5zZXJ0ZWQgY2FsbGVkIGZvciBwYXJl
bnQgbm9kZSAjZmluYWxfY29udGFpbmVyIik7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
KGdldE5vZGVJZGVudGlmaWVyKHJlc3BvbnNlLnBhcmFtcy5ub2RlLm5vZGVJZCkgPT09ICJkaXYj
dGFyZ2V0X2VsZW1lbnQiLCAib25DaGlsZE5vZGVJbnNlcnRlZCBjYWxsZWQgZm9yIGNoaWxkIG5v
ZGUgI3RhcmdldF9lbGVtZW50Iik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gb25EZWJ1Z2dlclBh
dXNlZChyZXNwb25zZSkKLSAgICB7ICAgCi0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJTdG9w
cGVkIG9uIERPTSBicmVha3BvaW50Iik7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ImV4cHJlc3Npb24iOiAibW92ZU5vZGUoKSJ9LCBmdW5j
dGlvbigpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2Vy
LnJlc3VtZSIpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAg
ICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gb25TY3JpcHRQYXJzZWQobWVzc2FnZU9i
amVjdCkKLSAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiBUaGUgRE9NIGJyZWFrcG9pbnRzIGFyZSBu
b3Qgd29ya2luZyB1bmxlc3MgdGhlcmUncyBhIEpTIGJyYWtwb2ludCBzZXQuIFNldHRpbmcgYSBm
YWtlIGJyZWFrcG9pbnQgdG8gd29ya2Fyb3VuZCB0aGF0LgotICAgICAgICAvLyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNzcwIAotICAgICAgICBpZiAoL25vZGUt
cmVtb3ZlZFwuaHRtbCQvLnRlc3QobWVzc2FnZU9iamVjdC5wYXJhbXMudXJsKSAmJiBtZXNzYWdl
T2JqZWN0LnBhcmFtcy5zdGFydExpbmUgPiAyMCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCJdID0gbnVsbDsKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJGb3VuZCA8c2NyaXB0PiIpOwotICAgICAgICAgICAgdmFy
IGxvY2F0aW9uID0ge3NjcmlwdElkOiBtZXNzYWdlT2JqZWN0LnBhcmFtcy5zY3JpcHRJZCwgbGlu
ZU51bWJlcjogbWVzc2FnZU9iamVjdC5wYXJhbXMuc3RhcnRMaW5lICsgMiwgY29sdW1uTnVtYmVy
OiAwfTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNl
dEJyZWFrcG9pbnQiLCB7bG9jYXRpb246IGxvY2F0aW9ufSwgZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRE9NLmdldERvY3VtZW50Iiwge30s
IG9uR290RG9jdW1lbnQpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBvbkdvdERvY3VtZW50KHJlc3BvbnNlKQotICAgIHsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5jaGVja0ZvckVycm9yKHJlc3BvbnNlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiRE9NLnF1ZXJ5U2VsZWN0b3JBbGwiLCB7Im5vZGVJZCI6IHJlc3BvbnNlLnJl
c3VsdC5yb290Lm5vZGVJZCwgInNlbGVjdG9yIjogIiN0YXJnZXRfZWxlbWVudCwjZmluYWxfY29u
dGFpbmVyIn0sIG9uUXVlcnlTZWxlY3RvckFsbCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gb25R
dWVyeVNlbGVjdG9yQWxsKHJlc3BvbnNlKQotICAgIHsKLSAgICAgICAgdmFyIHRhcmdldEVsZW1l
bnRJZCA9IHJlc3BvbnNlLnJlc3VsdC5ub2RlSWRzWzBdOwotICAgICAgICB2YXIgZmluYWxDb250
YWluZXJJZCA9IHJlc3BvbnNlLnJlc3VsdC5ub2RlSWRzWzFdOwotCi0gICAgICAgIEluc3BlY3Rv
clRlc3Quc2VuZENvbW1hbmQoIkRPTURlYnVnZ2VyLnNldERPTUJyZWFrcG9pbnQiLCB7bm9kZUlk
OiB0YXJnZXRFbGVtZW50SWQsIHR5cGU6ICJub2RlLXJlbW92ZWQifSk7Ci0gICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIkRPTS5yZXF1ZXN0Q2hpbGROb2RlcyIsIHtub2RlSWQ6IGZp
bmFsQ29udGFpbmVySWR9KTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJS
dW50aW1lLmV2YWx1YXRlIiwgeyJleHByZXNzaW9uIjogInJlbW92ZU5vZGUoKSJ9KTsKLSAgICB9
Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7
Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotCi08cD5UZXN0aW5nIHRoYXQgRE9NLmNo
aWxkTm9kZVJlbW92ZWQgaXMgY29ycmVjdGx5IHRyaWdnZXJlZCBldmVuIHdoZW4gdGhlIGVsZW1l
bnQgaXMgbW92ZWQgd2hpbGUgcGF1c2VkIGluIHRoZSBkZWJ1Z2dlciBvbiBhIERPTURlYnVnZ2Vy
ICJub2RlLXJlbW92ZWQiIGJyZWFrcG9pbnQuPC9wPgotCi08ZGl2IGlkPSJ0YXJnZXRfZWxlbWVu
dCI+PC9kaXY+Ci08ZGl2IGlkPSJmaW5hbF9jb250YWluZXIiPjwvZGl2PgotCi08IS0tIFNjcmlw
dCB0YWcgcmVxdWlyZWQgdG8gd29ya2Fyb3VuZCBidWcgMTIzNzcwLiBTZWUgb25TY3JpcHRQYXJz
ZWQgZm9yIGRldGFpbHMuIC0tPgotPHNjcmlwdD4vLyBMaW5lIDAKLWZ1bmN0aW9uIHRlc3RGdW5j
dGlvbigpIHsgLy8gTGluZSAxCi0gICAgY29uc29sZS5sb2coIkZBSUw6IFdvcmthcm91bmQgSlMg
Y29kZSBzaG91bGQgbm90IHJ1bi4iKTsKLX0KLTwvc2NyaXB0PgotCi08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tL2RvbS1yZW1v
dmUtZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
b20vZG9tLXJlbW92ZS1ldmVudHMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwY2Y5M2ZmMzdlMjY4MGQ4OTQwMTg4NTA5M2FkZTBjNGRhMzZkOGFjLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kb20vZG9tLXJlbW92ZS1ldmVudHMtZXhwZWN0ZWQudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsNiArMCwwIEBACi1UZXN0aW5nIHRoYXQgRE9NLmNoaWxkTm9kZVJlbW92ZWQg
aXMgY29ycmVjdGx5IHRyaWdnZXJlZCBvbmx5IHdoZW4gdGhlIGVsZW1lbnQgaXMgYWN0dWFsbHkg
Z29pbmcgdG8gYmUgcmVtb3ZlZCBmcm9tIHRoZSBET00uCi0KLVBBU1M6IG9uQ2hpbGROb2RlUmVt
b3ZlZCBjYWxsZWQgZm9yICN0YXJnZXRfZWxlbWVudAotUEFTUzogb25DaGlsZE5vZGVJbnNlcnRl
ZCBjYWxsZWQgZm9yIHBhcmVudCBub2RlICNmaW5hbF9jb250YWluZXIKLVBBU1M6IG9uQ2hpbGRO
b2RlSW5zZXJ0ZWQgY2FsbGVkIGZvciBjaGlsZCBub2RlICN0YXJnZXRfZWxlbWVudAotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tL2RvbS1yZW1vdmUtZXZl
bnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tL2RvbS1yZW1vdmUt
ZXZlbnRzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5NWZlYjRmZGMzODEy
YzQxNzFkMmEyNTUzMmVhNTBhMGI5NGU4ZDMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS9kb20t
cmVtb3ZlLWV2ZW50cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsODggKzAsMCBAQAotPGh0bWw+
Ci08aGVhZD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQ+Ci1mdW5jdGlvbiBtb3ZlTm9kZSgpCi17Ci0gICAgdmFyIHRlcmdldEVsZW1lbnQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0X2VsZW1lbnQiKTsKLSAgICB0ZXJnZXRFbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTU5vZGVSZW1vdmVkIiwgZnVuY3Rpb24oKSB7Ci0gICAg
ICAgIHRlcmdldEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NTm9kZVJlbW92ZWQiLCBh
cmd1bWVudHMuY2FsbGVlKTsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbmFs
X2NvbnRhaW5lciIpLmFwcGVuZENoaWxkKHRoaXMpOwotICAgIH0pOwotICAgIHRlcmdldEVsZW1l
bnQucmVtb3ZlKCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBub2Rlc0J5SWQg
PSB7fTsKLQotICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJET00uc2V0Q2hpbGROb2Rl
cyJdID0gb25TZXRDaGlsZE5vZGVzOwotICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJE
T00uY2hpbGROb2RlUmVtb3ZlZCJdID0gb25DaGlsZE5vZGVSZW1vdmVkOwotICAgIEluc3BlY3Rv
clRlc3QuZXZlbnRIYW5kbGVyWyJET00uY2hpbGROb2RlSW5zZXJ0ZWQiXSA9IG9uQ2hpbGROb2Rl
SW5zZXJ0ZWQ7Ci0KLSAgICBmdW5jdGlvbiBjcmVhdGVOb2RlQXR0cmlidXRlc01hcChub2RlKQot
ICAgIHsKLSAgICAgICAgdmFyIGF0dHJpYnV0ZXMgPSB7fTsKLSAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBub2RlLmF0dHJpYnV0ZXMubGVuZ3RoOyBpICs9IDIpCi0gICAgICAgICAgICBhdHRy
aWJ1dGVzW25vZGUuYXR0cmlidXRlc1tpXV0gPSBub2RlLmF0dHJpYnV0ZXNbaSArIDFdOwotICAg
ICAgICByZXR1cm4gYXR0cmlidXRlczsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjb2xsZWN0Tm9k
ZShub2RlKQotICAgIHsKLSAgICAgICAgbm9kZXNCeUlkW25vZGUubm9kZUlkXSA9IGNyZWF0ZU5v
ZGVBdHRyaWJ1dGVzTWFwKG5vZGUpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGdldE5vZGVJZGVu
dGlmaWVyKG5vZGVJZCkKLSAgICB7Ci0gICAgICAgIHZhciBub2RlID0gbm9kZXNCeUlkW25vZGVJ
ZF07Ci0gICAgICAgIHJldHVybiBub2RlID8gbm9kZS5pZCA6ICI8dW5rbm93biBub2RlPiI7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gb25TZXRDaGlsZE5vZGVzKHJlc3BvbnNlKQotICAgIHsKLSAg
ICAgICAgcmVzcG9uc2UucGFyYW1zLm5vZGVzLmZvckVhY2goY29sbGVjdE5vZGUpOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIG9uQ2hpbGROb2RlUmVtb3ZlZChyZXNwb25zZSkKLSAgICB7Ci0gICAg
ICAgIHZhciBub2RlSWQgPSByZXNwb25zZS5wYXJhbXMubm9kZUlkOwotICAgICAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydChnZXROb2RlSWRlbnRpZmllcihub2RlSWQpID09PSAidGFyZ2V0X2VsZW1l
bnQiLCAib25DaGlsZE5vZGVSZW1vdmVkIGNhbGxlZCBmb3IgI3RhcmdldF9lbGVtZW50Iik7Ci0g
ICAgICAgIGRlbGV0ZSBub2Rlc0J5SWRbbm9kZUlkXTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBv
bkNoaWxkTm9kZUluc2VydGVkKHJlc3BvbnNlKQotICAgIHsKLSAgICAgICAgY29sbGVjdE5vZGUo
cmVzcG9uc2UucGFyYW1zLm5vZGUpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChnZXRO
b2RlSWRlbnRpZmllcihyZXNwb25zZS5wYXJhbXMucGFyZW50Tm9kZUlkKSA9PT0gImZpbmFsX2Nv
bnRhaW5lciIsICJvbkNoaWxkTm9kZUluc2VydGVkIGNhbGxlZCBmb3IgcGFyZW50IG5vZGUgI2Zp
bmFsX2NvbnRhaW5lciIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChnZXROb2RlSWRl
bnRpZmllcihyZXNwb25zZS5wYXJhbXMubm9kZS5ub2RlSWQpID09PSAidGFyZ2V0X2VsZW1lbnQi
LCAib25DaGlsZE5vZGVJbnNlcnRlZCBjYWxsZWQgZm9yIGNoaWxkIG5vZGUgI3RhcmdldF9lbGVt
ZW50Iik7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRE9NLmdldERv
Y3VtZW50Iiwge30sIG9uR290RG9jdW1lbnQpOwotCi0gICAgZnVuY3Rpb24gb25Hb3REb2N1bWVu
dChtc2cpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IobXNnKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRE9NLnF1ZXJ5U2VsZWN0b3IiLCB7
Im5vZGVJZCI6IG1zZy5yZXN1bHQucm9vdC5ub2RlSWQsICJzZWxlY3RvciI6ICIjZmluYWxfY29u
dGFpbmVyIn0sIG9uUXVlcnlTZWxlY3Rvcik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gb25RdWVy
eVNlbGVjdG9yKHJlc3BvbnNlKQotICAgIHsKLSAgICAgICAgLy8gTWFrZSBzdXJlIHdlIHJlY2Vp
dmUgdGhlIGNoaWxkcmVuIG9mIHRoZSAiI2ZpbmFsX2NvbnRhaW5lciIgYXMgdGhleSBhcmUgYWRk
ZWQuCi0gICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRPTS5yZXF1ZXN0Q2hpbGRO
b2RlcyIsIHtub2RlSWQ6IHJlc3BvbnNlLnJlc3VsdC5ub2RlSWR9KTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHsiZXhwcmVzc2lvbiI6ICJt
b3ZlTm9kZSgpIn0sIGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci0KLTxwPlRlc3RpbmcgdGhhdCBET00uY2hpbGROb2Rl
UmVtb3ZlZCBpcyBjb3JyZWN0bHkgdHJpZ2dlcmVkIG9ubHkgd2hlbiB0aGUgZWxlbWVudCBpcyBh
Y3R1YWxseSBnb2luZyB0byBiZSByZW1vdmVkIGZyb20gdGhlIERPTS48L3A+Ci0KLTxkaXYgaWQ9
InRhcmdldF9lbGVtZW50Ij48L2Rpdj4KLTxkaXYgaWQ9ImZpbmFsX2NvbnRhaW5lciI+PC9kaXY+
Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9kb20vZG9tLXNlYXJjaC1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvZG9tL2RvbS1zZWFyY2gtY3Jhc2gtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNjMxZTFjMDEwNTYwZGU1ZmUxNDNkMGY2N2M3NDU1
MjNhOTRjZTQ2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20vZG9tLXNlYXJjaC1jcmFzaC1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLVRlc3RzIHRoYXQgZWxlbWVu
dHMgcGFuZWwgc2VhcmNoIGlzIG5vdCBjcmFzaGluZyBvbiBkb2N1bWVudEVsZW1lbnQtbGVzcyBj
YXNlcy4KLQotCi1QQVNTOiBUZXN0IHBhc3NlcyBpZiBpdCBkb2Vzbid0IGNyYXNoLgotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tL2RvbS1zZWFyY2gtY3Jh
c2guaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20vZG9tLXNlYXJjaC1j
cmFzaC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYTAxMGE0ZjRiMjU2MmY4
NTExNjZjMzY1NDA4NmQ0Mzk2ZDQ3YjA4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20vZG9tLXNl
YXJjaC1jcmFzaC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJE
T00uZ2V0RG9jdW1lbnQiLCB7fSwgb25Hb3REb2N1bWVudCk7Ci0KLSAgICBmdW5jdGlvbiBvbkdv
dERvY3VtZW50KG1lc3NhZ2UpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9y
KG1lc3NhZ2UpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJET00ucGVyZm9y
bVNlYXJjaCIsIHtxdWVyeTogIkZvb0JhciJ9LCBvblNlYXJjaENvbXBsZXRlZCk7Ci0gICAgfQot
Ci0gICAgZnVuY3Rpb24gb25TZWFyY2hDb21wbGV0ZWQobWVzc2FnZSkKLSAgICB7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihtZXNzYWdlKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIlBBU1M6IFRlc3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2guIik7Ci0gICAg
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxwPlRlc3RzIHRoYXQgZWxlbWVudHMgcGFuZWwgc2VhcmNoIGlzIG5v
dCBjcmFzaGluZyBvbiBkb2N1bWVudEVsZW1lbnQtbGVzcyBjYXNlcy48L3A+Ci08aWZyYW1lIHNy
Yz0icmVzb3VyY2VzL2RvbS1zZWFyY2gtY3Jhc2gtaWZyYW1lLmh0bWwiIG9ubG9hZD0icnVuVGVz
dCgpIj48L2lmcmFtZT4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kb20vZG9tLXNlYXJjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tL2RvbS1zZWFyY2gtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNTdhZTBjNDM5ZDUwYzIzNmZiNTc2ZmRiOGI5MzJk
NGUyYWUyNjMzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20vZG9tLXNlYXJjaC1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3OCArMCwwIEBACi1UZXN0aW5nIERPTS5wZXJmb3JtU2Vh
cmNoIHdpdGggbm8gcGFyZW50IG5vZGUgaWRzLgotCi0KLT09PSBRdWVyeTogImJvZHkiID09PQot
Q291bnQ6IDIKLWJvZHkubWFpbi1mcmFtZQotYm9keS5pbnNpZGUtaWZyYW1lCi09PT0gUXVlcnk6
ICI8Ym9keSIgPT09Ci1Db3VudDogMgotYm9keS5tYWluLWZyYW1lCi1ib2R5Lmluc2lkZS1pZnJh
bWUKLT09PSBRdWVyeTogImJvZHk+IiA9PT0KLUNvdW50OiAyCi1ib2R5Lm1haW4tZnJhbWUKLWJv
ZHkuaW5zaWRlLWlmcmFtZQotPT09IFF1ZXJ5OiAiPGJvZHk+IiA9PT0KLUNvdW50OiAyCi1ib2R5
Lm1haW4tZnJhbWUKLWJvZHkuaW5zaWRlLWlmcmFtZQotPT09IFF1ZXJ5OiAiPEJPRFk+IiA9PT0K
LUNvdW50OiAyCi1ib2R5Lm1haW4tZnJhbWUKLWJvZHkuaW5zaWRlLWlmcmFtZQotPT09IFF1ZXJ5
OiAib25sb2FkIiA9PT0KLUNvdW50OiAxCi1ib2R5Lm1haW4tZnJhbWUKLT09PSBRdWVyeTogIk9O
TE9BRCIgPT09Ci1Db3VudDogMQotYm9keS5tYWluLWZyYW1lCi09PT0gUXVlcnk6ICJydW5UZXN0
KCkiID09PQotQ291bnQ6IDEKLWJvZHkubWFpbi1mcmFtZQotPT09IFF1ZXJ5OiAiXCJydW5UZXN0
KCkiID09PQotQ291bnQ6IDEKLWJvZHkubWFpbi1mcmFtZQotPT09IFF1ZXJ5OiAiXCJydW5UZXN0
KClcIiIgPT09Ci1Db3VudDogMQotYm9keS5tYWluLWZyYW1lCi09PT0gUXVlcnk6ICJydW5UZXN0
KClcIiIgPT09Ci1Db3VudDogMQotYm9keS5tYWluLWZyYW1lCi09PT0gUXVlcnk6ICJSVU5URVNU
KCkiID09PQotQ291bnQ6IDEKLWJvZHkubWFpbi1mcmFtZQotPT09IFF1ZXJ5OiAicnVudGVzdCgp
IiA9PT0KLUNvdW50OiAxCi1ib2R5Lm1haW4tZnJhbWUKLT09PSBRdWVyeTogIi5ib2R5LWluc2lk
ZS1pZnJhbWUiID09PQotQ291bnQ6IDAKLT09PSBRdWVyeTogIioiID09PQotQ291bnQ6IDEyCi1o
dG1sCi1oZWFkCi1zY3JpcHQKLXNjcmlwdAotYm9keS5tYWluLWZyYW1lCi1wCi1pZnJhbWUKLWh0
bWwuaW5zaWRlLWlmcmFtZQotaGVhZC5pbnNpZGUtaWZyYW1lCi1ib2R5Lmluc2lkZS1pZnJhbWUK
LWRpdi5iYXNlMS5pbnNpZGUtaWZyYW1lCi1wLmluc2lkZS1pZnJhbWUKLT09PSBRdWVyeTogIkJP
RFlbT05MT0FEXSIgPT09Ci1Db3VudDogMQotYm9keS5tYWluLWZyYW1lCi09PT0gUXVlcnk6ICIv
aHRtbC9ib2R5IiA9PT0KLUNvdW50OiAyCi1ib2R5Lm1haW4tZnJhbWUKLWJvZHkuaW5zaWRlLWlm
cmFtZQotPT09IFF1ZXJ5OiAiL2h0bWwvYm9keS9Ab25sb2FkIiA9PT0KLUNvdW50OiAxCi1ib2R5
Lm1haW4tZnJhbWUKLT09PSBRdWVyeTogIi9IVE1ML0JPRFkiID09PQotQ291bnQ6IDIKLWJvZHku
bWFpbi1mcmFtZQotYm9keS5pbnNpZGUtaWZyYW1lCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kb20vZG9tLXNlYXJjaC13aXRoLWNvbnRleHQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS9kb20tc2VhcmNoLXdpdGgt
Y29udGV4dC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk5ZTQ0
MzE3NGFhNzQ0MjNhNjM3MDI4NGIwZWFjOGMyNGMzYTA3OTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2RvbS9kb20tc2VhcmNoLXdpdGgtY29udGV4dC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwyNSArMCwwIEBACi1UZXN0aW5nIERPTS5wZXJmb3JtU2VhcmNoIHdpdGggcGFyZW50IG5v
ZGUgaWRzLgotCi0KLT09PSBRdWVyeTogInAiIGluIFtdID09PQotQ291bnQ6IDAKLT09PSBRdWVy
eTogInAiIGluIFsuYmFzZTFdID09PQotQ291bnQ6IDEKLXAuYmFzZTEubWFpbi1mcmFtZQotPT09
IFF1ZXJ5OiAicCIgaW4gWy5iYXNlMl0gPT09Ci1Db3VudDogMQotcC5iYXNlMi5tYWluLWZyYW1l
Ci09PT0gUXVlcnk6ICJwIiBpbiBbLmJhc2UxLCAuYmFzZTJdID09PQotQ291bnQ6IDIKLXAuYmFz
ZTEubWFpbi1mcmFtZQotcC5iYXNlMi5tYWluLWZyYW1lCi09PT0gUXVlcnk6ICJwIiBpbiBbaWZy
YW1lXSA9PT0KLUNvdW50OiAxCi1wLmluc2lkZS1pZnJhbWUKLT09PSBRdWVyeTogIi8vcCIgaW4g
Wy5iYXNlMV0gPT09Ci1Db3VudDogMQotcC5iYXNlMS5tYWluLWZyYW1lCi09PT0gUXVlcnk6ICIv
L2RpdiIgaW4gWy5iYXNlMV0gPT09Ci1Db3VudDogMQotZGl2LmJhc2UxCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20vZG9tLXNlYXJjaC13aXRoLWNvbnRl
eHQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20vZG9tLXNlYXJjaC13
aXRoLWNvbnRleHQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjBjMjJiYjEy
NmI5MzAwMjk2MjIzOTIyYWNjZjRhMjM1NjU0NDRmMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9t
L2RvbS1zZWFyY2gtd2l0aC1jb250ZXh0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMjkgKzAs
MCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICAvLyBDcmVhdGUgYSBE
T00gbGlzdGVuZXIgdG8gY29udmVydCBub2RlSWRzIHRvIHRhZyBuYW1lcy4KLSAgICBJbnNwZWN0
b3JUZXN0LmltcG9ydFNjcmlwdCgiLi4vZG9tL3Jlc291cmNlcy9JbnNwZWN0b3JET01MaXN0ZW5l
ci5qcyIpOwotICAgIHZhciBkb20gPSBjcmVhdGVET01MaXN0ZW5lcigpOwotCi0gICAgLy8gQ2Fj
aGluZyB0aGUgb3V0cHV0IHRvIGF2b2lkIHNlYXJjaGluZyB0aHJvdWdoIHRoZSBsb2cuCi0gICAg
dmFyIG91dHB1dCA9IFtdOwotICAgIHZhciBkb2N1bWVudElkOwotICAgIHZhciBkb21TZWFyY2hR
dWVyaWVzID0gWwotICAgICAgICB7Ci0gICAgICAgICAgICBxdWVyeTogInAiLAotICAgICAgICAg
ICAgbm9kZXM6IFtdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgIHF1ZXJ5OiAi
cCIsCi0gICAgICAgICAgICBub2RlczogWyIuYmFzZTEiXQotICAgICAgICB9LAotICAgICAgICB7
Ci0gICAgICAgICAgICBxdWVyeTogInAiLAotICAgICAgICAgICAgbm9kZXM6IFsiLmJhc2UyIl0K
LSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgcXVlcnk6ICJwIiwKLSAgICAgICAg
ICAgIG5vZGVzOiBbIi5iYXNlMSIsICIuYmFzZTIiXQotICAgICAgICB9LAotICAgICAgICB7Ci0g
ICAgICAgICAgICBxdWVyeTogInAiLAotICAgICAgICAgICAgbm9kZXM6IFsiaWZyYW1lIl0KLSAg
ICAgICAgfSwKLQotICAgICAgICAvLyBYUGF0aCBzaG91bGQgcmV0dXJuIGp1c3QgdGhlIGNoaWxk
cmVuIG9mIHRoZSBzZWxlY3RlZCBub2Rlcy4KLSAgICAgICAgewotICAgICAgICAgICAgcXVlcnk6
ICIvL3AiLAotICAgICAgICAgICAgbm9kZXM6IFsiLmJhc2UxIl0KLSAgICAgICAgfSwKLSAgICAg
ICAgewotICAgICAgICAgICAgcXVlcnk6ICIvL2RpdiIsCi0gICAgICAgICAgICBub2RlczogWyIu
YmFzZTEiXQotICAgICAgICB9Ci0gICAgXTsKLQotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIkRPTS5nZXREb2N1bWVudCIsIHt9LCBvbkdvdERvY3VtZW50KTsKLQotICAgIGZ1bmN0aW9u
IG9uR290RG9jdW1lbnQobWVzc2FnZSkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9y
RXJyb3IobWVzc2FnZSk7Ci0gICAgICAgIGRvbS5jb2xsZWN0Tm9kZShtZXNzYWdlLnJlc3VsdC5y
b290KTsKLSAgICAgICAgZG9jdW1lbnRJZCA9IG1lc3NhZ2UucmVzdWx0LnJvb3Qubm9kZUlkOwot
ICAgICAgICBwZXJmb3JtU2VhcmNoZXMoZG9tU2VhcmNoUXVlcmllcywgdGVzdEZpbmlzaGVkKTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBwZXJmb3JtU2VhcmNoZXMobGlzdCwgY2FsbGJhY2spCi0g
ICAgewotICAgICAgICBmdW5jdGlvbiBuZXh0KCkgewotICAgICAgICAgICAgaWYgKGxpc3QubGVu
Z3RoKQotICAgICAgICAgICAgICAgIHNlYXJjaChsaXN0LnNoaWZ0KCksIG5leHQpOwotICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgIH0KLSAgICAg
ICAgbmV4dCgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHNlYXJjaChxdWVyeURhdGEsIGNhbGxi
YWNrKQotICAgIHsKLSAgICAgICAgcmVzb2x2ZVNlbGVjdG9ycyhxdWVyeURhdGEubm9kZXMsIGZ1
bmN0aW9uKG5vZGVJZHMpIHsKLSAgICAgICAgICAgIG91dHB1dC5wdXNoKCI9PT0gUXVlcnk6ICIg
KyBKU09OLnN0cmluZ2lmeShxdWVyeURhdGEucXVlcnkpICsgIiBpbiBbIiArIHF1ZXJ5RGF0YS5u
b2Rlcy5qb2luKCIsICIpICsgIl0gPT09Iik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNl
bmRDb21tYW5kKCJET00ucGVyZm9ybVNlYXJjaCIsIHtxdWVyeTogcXVlcnlEYXRhLnF1ZXJ5LCBu
b2RlSWRzOiBub2RlSWRzfSwgZnVuY3Rpb24obWVzc2FnZSkgewotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihtZXNzYWdlKTsKLSAgICAgICAgICAgICAgICBwcmlu
dFNlYXJjaFJlc3VsdHMobWVzc2FnZS5yZXN1bHQsIGNhbGxiYWNrKTsKLSAgICAgICAgICAgIH0p
OwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiByZXNvbHZlU2VsZWN0b3JzKG5v
ZGVzLCBjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIHZhciByZXN1bHRzID0gbmV3IEFycmF5KG5v
ZGVzLmxlbmd0aCk7Ci0gICAgICAgIHZhciByZW1haW5pbmcgPSBub2Rlcy5sZW5ndGg7Ci0gICAg
ICAgIGlmICghcmVtYWluaW5nKQotICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKHJlc3VsdHMp
OwotICAgICAgICBub2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKHNlbGVjdG9yLCBpbmRleCkgewotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRE9NLnF1ZXJ5U2VsZWN0b3IiLCB7
bm9kZUlkOiBkb2N1bWVudElkLCBzZWxlY3Rvcjogc2VsZWN0b3J9LCBmdW5jdGlvbihtZXNzYWdl
KSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKG1lc3NhZ2Up
OwotICAgICAgICAgICAgICAgIHJlc3VsdHNbaW5kZXhdID0gbWVzc2FnZS5yZXN1bHQubm9kZUlk
OwotICAgICAgICAgICAgICAgIGlmICgtLXJlbWFpbmluZyA8PSAwKQotICAgICAgICAgICAgICAg
ICAgICBjYWxsYmFjayhyZXN1bHRzKTsKLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBwcmludFNlYXJjaFJlc3VsdHMocmVzdWx0cywgY2FsbGJhY2sp
Ci0gICAgewotICAgICAgICBvdXRwdXQucHVzaCgiQ291bnQ6ICIgKyByZXN1bHRzLnJlc3VsdENv
dW50KTsKLSAgICAgICAgaWYgKCFyZXN1bHRzLnJlc3VsdENvdW50KQotICAgICAgICAgICAgcmV0
dXJuIGNhbGxiYWNrKCk7Ci0KLSAgICAgICAgdmFyIG9wdGlvbnMgPSB7InNlYXJjaElkIjogcmVz
dWx0cy5zZWFyY2hJZCwgImZyb21JbmRleCI6IDAsICJ0b0luZGV4IjogcmVzdWx0cy5yZXN1bHRD
b3VudH07Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRPTS5nZXRTZWFyY2hS
ZXN1bHRzIiwgb3B0aW9ucywgZnVuY3Rpb24obWVzc2FnZSkgewotICAgICAgICAgICAgZm9yICh2
YXIgbm9kZUlkIG9mIG1lc3NhZ2UucmVzdWx0Lm5vZGVJZHMpCi0gICAgICAgICAgICAgICAgb3V0
cHV0LnB1c2goZG9tLmdldE5vZGVJZGVudGlmaWVyKG5vZGVJZCkpOwotICAgICAgICAgICAgY2Fs
bGJhY2soKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gdGVzdEZpbmlzaGVk
KCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKG91dHB1dC5qb2luKCJcbiIpKTsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci08L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIiBjbGFzcz0ibWFpbi1mcmFtZSI+
Ci0gICAgPHA+VGVzdGluZyBET00ucGVyZm9ybVNlYXJjaCB3aXRoIHBhcmVudCBub2RlIGlkcy48
L3A+Ci0KLSAgICA8ZGl2IGNsYXNzPSJiYXNlMSI+Ci0gICAgICAgIDxwIGNsYXNzPSJiYXNlMSBt
YWluLWZyYW1lIj48L3A+Ci0gICAgPC9kaXY+Ci0KLSAgICA8ZGl2IGNsYXNzPSJiYXNlMiI+Ci0g
ICAgICAgIDxwIGNsYXNzPSJiYXNlMiBtYWluLWZyYW1lIj48L3A+Ci0gICAgPC9kaXY+Ci0KLSAg
ICA8aWZyYW1lIHNyYz0icmVzb3VyY2VzL2RvbS1zZWFyY2gtaWZyYW1lLmh0bWwiPjwvaWZyYW1l
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RvbS9kb20tc2VhcmNoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZG9tL2RvbS1zZWFyY2guaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2Iz
N2Y5OTgxMTRmYjQ4MzVkMDM0M2Y2OTQ3MWRiNzVhN2E4NDE1ZS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZG9tL2RvbS1zZWFyY2guaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcxICswLDAgQEAKLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgLy8gTG9hZGluZyB0aGUgcXVlcmll
cyBmcm9tIGV4dGVybmFsIGZpbGUgdG8gYXZvaWQgaGF2aW5nIHRoZW0gc2hvdyB1cCBpbiB0aGUg
cmVzdWx0cy4KLSAgICBJbnNwZWN0b3JUZXN0LmltcG9ydFNjcmlwdCgiLi4vLi4vLi4vLi4vaW5z
cGVjdG9yLXByb3RvY29sL2RvbS9yZXNvdXJjZXMvZG9tLXNlYXJjaC1xdWVyaWVzLmpzIik7Ci0K
LSAgICAvLyBDcmVhdGUgYSBET00gbGlzdGVuZXIgdG8gY29udmVydCBub2RlSWRzIHRvIHRhZyBu
YW1lcy4KLSAgICBJbnNwZWN0b3JUZXN0LmltcG9ydFNjcmlwdCgiLi4vZG9tL3Jlc291cmNlcy9J
bnNwZWN0b3JET01MaXN0ZW5lci5qcyIpOwotICAgIHZhciBkb20gPSBjcmVhdGVET01MaXN0ZW5l
cigpOwotCi0gICAgLy8gQ2FjaGluZyB0aGUgb3V0cHV0IHRvIGF2b2lkIHNlYXJjaGluZyB0aHJv
dWdoIHRoZSBsb2cuCi0gICAgdmFyIG91dHB1dCA9IFtdOwotCi0gICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiRE9NLmdldERvY3VtZW50Iiwge30sIG9uR290RG9jdW1lbnQpOwotCi0gICAg
ZnVuY3Rpb24gb25Hb3REb2N1bWVudChtZXNzYWdlKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
Y2hlY2tGb3JFcnJvcihtZXNzYWdlKTsKLSAgICAgICAgZG9tLmNvbGxlY3ROb2RlKG1lc3NhZ2Uu
cmVzdWx0LnJvb3QpOwotICAgICAgICBwZXJmb3JtU2VhcmNoZXMoZG9tU2VhcmNoUXVlcmllcywg
dGVzdEZpbmlzaGVkKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBwZXJmb3JtU2VhcmNoZXMobGlz
dCwgY2FsbGJhY2spCi0gICAgewotICAgICAgICBmdW5jdGlvbiBuZXh0KCkgewotICAgICAgICAg
ICAgaWYgKGxpc3QubGVuZ3RoKQotICAgICAgICAgICAgICAgIHNlYXJjaChsaXN0LnNoaWZ0KCks
IG5leHQpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgbmV4dCgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHNlYXJjaChx
dWVyeSwgY2FsbGJhY2spCi0gICAgewotICAgICAgICBvdXRwdXQucHVzaCgiPT09IFF1ZXJ5OiAi
ICsgSlNPTi5zdHJpbmdpZnkocXVlcnkpICsgIiA9PT0iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5zZW5kQ29tbWFuZCgiRE9NLnBlcmZvcm1TZWFyY2giLCB7cXVlcnk6IHF1ZXJ5fSwgZnVuY3Rp
b24obWVzc2FnZSkgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKG1l
c3NhZ2UpOwotICAgICAgICAgICAgcHJpbnRTZWFyY2hSZXN1bHRzKG1lc3NhZ2UucmVzdWx0LCBj
YWxsYmFjayk7Ci0gICAgICAgIH0pOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHByaW50U2VhcmNo
UmVzdWx0cyhyZXN1bHRzLCBjYWxsYmFjaykKLSAgICB7Ci0gICAgICAgIG91dHB1dC5wdXNoKCJD
b3VudDogIiArIHJlc3VsdHMucmVzdWx0Q291bnQpOwotICAgICAgICBpZiAoIXJlc3VsdHMucmVz
dWx0Q291bnQpCi0gICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soKTsKLQotICAgICAgICB2YXIg
b3B0aW9ucyA9IHsic2VhcmNoSWQiOiByZXN1bHRzLnNlYXJjaElkLCAiZnJvbUluZGV4IjogMCwg
InRvSW5kZXgiOiByZXN1bHRzLnJlc3VsdENvdW50fTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiRE9NLmdldFNlYXJjaFJlc3VsdHMiLCBvcHRpb25zLCBmdW5jdGlvbiBvblJl
c3VsdHNSZWNlaXZlZChtZXNzYWdlKSB7Ci0gICAgICAgICAgICBmb3IgKHZhciBub2RlSWQgb2Yg
bWVzc2FnZS5yZXN1bHQubm9kZUlkcykKLSAgICAgICAgICAgICAgICBvdXRwdXQucHVzaChkb20u
Z2V0Tm9kZUlkZW50aWZpZXIobm9kZUlkKSk7Ci0gICAgICAgICAgICBjYWxsYmFjaygpOwotICAg
ICAgICB9KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0RmluaXNoZWQoKQotICAgIHsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2cob3V0cHV0LmpvaW4oIlxuIikpOwotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiIGNsYXNzPSJtYWluLWZyYW1lIj4KLSAgICA8cD5UZXN0
aW5nIERPTS5wZXJmb3JtU2VhcmNoIHdpdGggbm8gcGFyZW50IG5vZGUgaWRzLjwvcD4KLSAgICA8
aWZyYW1lIHNyYz0icmVzb3VyY2VzL2RvbS1zZWFyY2gtaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2RvbS9mb2N1cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZG9tL2ZvY3VzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MjA3YjVjMjk5MWRlMjczZjM3ODVlYTIwMmMxZmI1NTJmODc1NjBmYy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZG9tL2ZvY3VzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBA
QAotIAotZm9jdXNlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvZG9tL2ZvY3VzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tL2Zv
Y3VzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRkNzdlNTFhYjgzNDUxYTEy
MDBjMmZkYzlmZTYyODRhYWQ4OThjZjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS9mb2N1cy5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDcgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci13aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGZ1bmN0aW9uKCkgewotICAgIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoIiNzZWNvbmQiKS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsIGZ1bmN0aW9uKCkg
ewotICAgICAgICBsb2coImZvY3VzZWQiKTsKLSAgICB9KTsKLX0pOwotCi1mdW5jdGlvbiB0ZXN0
KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJET00uZ2V0RG9jdW1lbnQiLCB7
fSwgb25Hb3REb2N1bWVudCk7Ci0KLSAgICBmdW5jdGlvbiBvbkdvdERvY3VtZW50KG1zZykgewot
ICAgICAgICBpZiAobXNnLmVycm9yKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyht
c2cuZXJyb3IubWVzc2FnZSk7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHZhciBub2RlID0g
bXNnLnJlc3VsdC5yb290OwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJET00u
cXVlcnlTZWxlY3RvciIsIHsgIm5vZGVJZCI6IG5vZGUubm9kZUlkLCAic2VsZWN0b3IiOiAiI3Nl
Y29uZCIgfSwgb25RdWVyeVNlbGVjdG9yKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBvblF1ZXJ5
U2VsZWN0b3IobXNnKSB7Ci0gICAgICAgIGlmIChtc2cuZXJyb3IpIHsKLSAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKG1zZy5lcnJvci5tZXNzYWdlKTsKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAg
ICAgICAgdmFyIG5vZGUgPSBtc2cucmVzdWx0OwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRD
b21tYW5kKCJET00uZm9jdXMiLCB7ICJub2RlSWQiOiBub2RlLm5vZGVJZCB9LCBvbkZvY3VzKTsK
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBvbkZvY3VzKG1zZykgewotICAgICAgICBpZiAobXNnLmVy
cm9yKQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cobXNnLmVycm9yKTsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19Ci08L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxpbnB1dD48L2lucHV0PgotPGlucHV0IGlk
PSJzZWNvbmQiPjwvaW5wdXQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tL2dldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9y
Tm9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tL2dl
dEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGYyNzYwZWRkNDEyNTM1ZGVmNTQ0ZjE1ZjdjNjIyMjdjZTA4NTY4
MGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS9nZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllc0Zv
ck5vZGUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNTMxICswLDAgQEAKLUNoZWNr
aW5nIFdlYiBJbnNwZWN0b3IgcHJvdG9jb2wgZm9yIHRoZSBBY2Nlc3NpYmlsaXR5IE5vZGUgSW5z
cGVjdG9yLgotCi0jZG9jdW1lbnQKLSAgICBleGlzdHM6IHRydWUKLSAgICBsYWJlbDogCi0gICAg
cm9sZTogCi0gICAgY2hpbGROb2RlSWRzLmxlbmd0aDogNDMKLQotCi1Ub3RhbCBlbGVtZW50cyB0
byBiZSB0ZXN0ZWQ6IDY1LgotCi08ZGl2IG9uY2xpY2s9InZvaWQoMCk7Ij5jbGljazwvZGl2Pgot
ICAgIGV4aXN0czogdHJ1ZQotICAgIGxhYmVsOiAKLSAgICByb2xlOiAKLSAgICBjaGlsZE5vZGVJ
ZHMubGVuZ3RoOiAxCi0gICAgbW91c2VFdmVudE5vZGVJZDogZXhpc3RzCi0gICAgcGFyZW50Tm9k
ZUlkOiBleGlzdHMKLQotPGxpIHJvbGU9InRyZWVpdGVtIiBhcmlhLWV4cGFuZGVkPSJ1bmRlZmlu
ZWQiPmV4cGFuZGVkPC9saT4KLSAgICBleGlzdHM6IHRydWUKLSAgICBsYWJlbDogCi0gICAgcm9s
ZTogdHJlZWl0ZW0KLSAgICBjaGlsZE5vZGVJZHMubGVuZ3RoOiAxCi0gICAgcGFyZW50Tm9kZUlk
OiBleGlzdHMKLQotPGxpIHJvbGU9InRyZWVpdGVtIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIgaWQ9
ImFjdGl2ZWRlc2NlbmRhbnQiIGFyaWEtc2VsZWN0ZWQ9InRydWUiPmNvbGxhcHNlZDwvbGk+Ci0g
ICAgZXhpc3RzOiB0cnVlCi0gICAgbGFiZWw6IAotICAgIHJvbGU6IHRyZWVpdGVtCi0gICAgY2hp
bGROb2RlSWRzLmxlbmd0aDogMQotICAgIGV4cGFuZGVkOiBmYWxzZQotICAgIHBhcmVudE5vZGVJ
ZDogZXhpc3RzCi0gICAgc2VsZWN0ZWQ6IHRydWUKLQotPGxpIHJvbGU9InRyZWVpdGVtIiBhcmlh
LWV4cGFuZGVkPSJ0cnVlIj5leHBhbmRlZDwvbGk+Ci0gICAgZXhpc3RzOiB0cnVlCi0gICAgbGFi
ZWw6IAotICAgIHJvbGU6IHRyZWVpdGVtCi0gICAgY2hpbGROb2RlSWRzLmxlbmd0aDogMQotICAg
IGV4cGFuZGVkOiB0cnVlCi0gICAgcGFyZW50Tm9kZUlkOiBleGlzdHMKLQotPHVsIHJvbGU9InRy
ZWUiIGlkPSJmbG93ZWRUbzEiIGFyaWEtYWN0aXZlZGVzY2VuZGFudD0iYWN0aXZlZGVzY2VuZGFu
dCI+Ci0gICAgPGxpIHJvbGU9InRyZWVpdGVtIiBhcmlhLWV4cGFuZGVkPSJ0cnVlIj5leHBhbmRl
ZDwvbGk+Ci0gICAgPGxpIHJvbGU9InRyZWVpdGVtIiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIgaWQ9
ImFjdGl2ZWRlc2NlbmRhbnQiIGFyaWEtc2VsZWN0ZWQ9InRydWUiPmNvbGxhcHNlZDwvbGk+Ci0g
ICAgPGxpIHJvbGU9InRyZWVpdGVtIiBhcmlhLWV4cGFuZGVkPSJ1bmRlZmluZWQiPmV4cGFuZGVk
PC9saT4KLTwvdWw+Ci0gICAgZXhpc3RzOiB0cnVlCi0gICAgbGFiZWw6IAotICAgIHJvbGU6IHRy
ZWUKLSAgICBhY3RpdmVEZXNjZW5kYW50Tm9kZUlkOiBleGlzdHMKLSAgICBjaGlsZE5vZGVJZHMu
bGVuZ3RoOiAzCi0gICAgcGFyZW50Tm9kZUlkOiBleGlzdHMKLSAgICBzZWxlY3RlZENoaWxkTm9k
ZUlkcy5sZW5ndGg6IDEKLQotPGRpdiByb2xlPSJvcHRpb24iIGFyaWEtYnVzeT0idHJ1ZSI+YnVz
eSAoc2VsZik8L2Rpdj4KLSAgICBleGlzdHM6IHRydWUKLSAgICBsYWJlbDogYnVzeSAoc2VsZikK
LSAgICByb2xlOiBvcHRpb24KLSAgICBidXN5OiB0cnVlCi0gICAgcGFyZW50Tm9kZUlkOiBleGlz
dHMKLQotPGRpdiByb2xlPSJvcHRpb24iPmJ1c3kgKHBhcmVudCk8L2Rpdj4KLSAgICBleGlzdHM6
IHRydWUKLSAgICBsYWJlbDogYnVzeSAocGFyZW50KQotICAgIHJvbGU6IG9wdGlvbgotICAgIGJ1
c3k6IHRydWUKLSAgICBwYXJlbnROb2RlSWQ6IGV4aXN0cwotCi08ZGl2IHJvbGU9Imxpc3Rib3gi
IGFyaWEtbXVsdGlzZWxlY3RhYmxlPSJ0cnVlIj4KLSAgICA8ZGl2IHJvbGU9Im9wdGlvbiIgYXJp
YS1zZWxlY3RlZD0idHJ1ZSI+c2VsZWN0ZWQ8L2Rpdj4KLSAgICA8ZGl2IHJvbGU9Im9wdGlvbiIg
YXJpYS1zZWxlY3RlZD0iZmFsc2UiPm5vdCBzZWxlY3RlZDwvZGl2PgotICAgIDxkaXYgcm9sZT0i
b3B0aW9uIiBhcmlhLXNlbGVjdGVkPSJ0cnVlIj5zZWxlY3RlZDwvZGl2PgotPC9kaXY+Ci0gICAg
ZXhpc3RzOiB0cnVlCi0gICAgbGFiZWw6IAotICAgIHJvbGU6IGxpc3Rib3gKLSAgICBjaGlsZE5v
ZGVJZHMubGVuZ3RoOiAzCi0gICAgcGFyZW50Tm9kZUlkOiBleGlzdHMKLSAgICByZXF1aXJlZDog
ZmFsc2UKLSAgICBzZWxlY3RlZENoaWxkTm9kZUlkcy5sZW5ndGg6IDIKLQotPGRpdiByb2xlPSJ0
YWIiIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIj5ub3Qgc2VsZWN0ZWQ8L2Rpdj4KLSAgICBleGlzdHM6
IHRydWUKLSAgICBsYWJlbDogbm90IHNlbGVjdGVkCi0gICAgcm9sZTogdGFiCi0gICAgcGFyZW50
Tm9kZUlkOiBleGlzdHMKLQotPGRpdiByb2xlPSJ0YWIiIGFyaWEtc2VsZWN0ZWQ9InRydWUiPnNl
bGVjdGVkPC9kaXY+Ci0gICAgZXhpc3RzOiB0cnVlCi0gICAgbGFiZWw6IHNlbGVjdGVkCi0gICAg
cm9sZTogdGFiCi0gICAgcGFyZW50Tm9kZUlkOiBleGlzdHMKLSAgICBzZWxlY3RlZDogdHJ1ZQot
Ci08ZGl2IHJvbGU9InRhYmxpc3QiIGFyaWEtZmxvd3RvPSJmbG93ZWRUbzEgaW52YWxpZElkUmVm
IGZsb3dlZFRvMiI+Ci0gICAgPGRpdiByb2xlPSJ0YWIiIGFyaWEtc2VsZWN0ZWQ9InRydWUiPnNl
bGVjdGVkPC9kaXY+Ci0gICAgPGRpdiByb2xlPSJ0YWIiIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIj5u
b3Qgc2VsZWN0ZWQ8L2Rpdj4KLTwvZGl2PgotICAgIGV4aXN0czogdHJ1ZQotICAgIGxhYmVsOiAK
LSAgICByb2xlOiB0YWJsaXN0Ci0gICAgY2hpbGROb2RlSWRzLmxlbmd0aDogMgotICAgIGZsb3dl
ZE5vZGVJZHMubGVuZ3RoOiAyCi0gICAgcGFyZW50Tm9kZUlkOiBleGlzdHMKLQotPGRpdiByb2xl
PSJvcHRpb24iIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIj5ub3Qgc2VsZWN0ZWQ8L2Rpdj4KLSAgICBl
eGlzdHM6IHRydWUKLSAgICBsYWJlbDogbm90IHNlbGVjdGVkCi0gICAgcm9sZTogb3B0aW9uCi0g
ICAgcGFyZW50Tm9kZUlkOiBleGlzdHMKLQotPGRpdiByb2xlPSJvcHRpb24iIGFyaWEtc2VsZWN0
ZWQ9InRydWUiPnNlbGVjdGVkPC9kaXY+Ci0gICAgZXhpc3RzOiB0cnVlCi0gICAgbGFiZWw6IHNl
bGVjdGVkCi0gICAgcm9sZTogb3B0aW9uCi0gICAgcGFyZW50Tm9kZUlkOiBleGlzdHMKLSAgICBz
ZWxlY3RlZDogdHJ1ZQotCi08ZGl2IHJvbGU9Imxpc3Rib3giIGlkPSJvd25lZGxpc3Rib3giPgot
ICAgIDxkaXYgcm9sZT0ib3B0aW9uIiBhcmlhLXNlbGVjdGVkPSJ0cnVlIj5zZWxlY3RlZDwvZGl2
PgotICAgIDxkaXYgcm9sZT0ib3B0aW9uIiBhcmlhLXNlbGVjdGVkPSJmYWxzZSI+bm90IHNlbGVj
dGVkPC9kaXY+Ci08L2Rpdj4KLSAgICBleGlzdHM6IHRydWUKLSAgICBsYWJlbDogCi0gICAgcm9s
ZTogbGlzdGJveAotICAgIGNoaWxkTm9kZUlkcy5sZW5ndGg6IDIKLSAgICBwYXJlbnROb2RlSWQ6
IGV4aXN0cwotICAgIHJlcXVpcmVkOiBmYWxzZQotICAgIHNlbGVjdGVkQ2hpbGROb2RlSWRzLmxl
bmd0aDogMQotCi08aW5wdXQgcm9sZT0iY29tYm9ib3giIGFyaWEtb3ducz0ib3duZWRsaXN0Ym94
IGludmFsaWRJZFJlZiIgYXJpYS1jb250cm9scz0ib3duZWRsaXN0Ym94IGludmFsaWRJZFJlZiI+
Ci0gICAgZXhpc3RzOiB0cnVlCi0gICAgbGFiZWw6IAotICAgIHJvbGU6IGNvbWJvYm94Ci0gICAg
Y29udHJvbGxlZE5vZGVJZHMubGVuZ3RoOiAxCi0gICAgZXhwYW5kZWQ6IGZhbHNlCi0gICAgZm9j
dXNlZDogZmFsc2UKLSAgICBvd25lZE5vZGVJZHMubGVuZ3RoOiAxCi0gICAgcmVxdWlyZWQ6IGZh
bHNlCi0KLTxvcHRpb24+bm90IHNlbGVjdGVkPC9vcHRpb24+Ci0gICAgZXhpc3RzOiBmYWxzZQot
ICAgIGxhYmVsOiAKLSAgICByb2xlOiAKLQotPG9wdGlvbiBzZWxlY3RlZD0iIj5GSVhNRTogU2Vs
ZWN0ZWQgaXMgZmFsc2UuIEV4cGVjdGVkIHRydWUuIGh0dHA6Ly93ZWJraXQub3JnL2IvMTI5ODM1
PC9vcHRpb24+Ci0gICAgZXhpc3RzOiBmYWxzZQotICAgIGxhYmVsOiAKLSAgICByb2xlOiAKLQot
PGltZyBzcmM9ImRhdGE6aW1hZ2UvZ2lmLi4uIiBhbHQ9IngiIHN0eWxlPSJkaXNwbGF5Om5vbmU7
Ij4KLSAgICBleGlzdHM6IGZhbHNlCi0gICAgbGFiZWw6IAotICAgIHJvbGU6IAotCi08aW1nIHNy
Yz0iZGF0YTppbWFnZS9naWYuLi4iIGFsdD0ieCIgYXJpYS1oaWRkZW49InRydWUiPgotICAgIGV4
aXN0czogdHJ1ZQotICAgIGxhYmVsOiB4Ci0gICAgcm9sZTogaW1nCi0gICAgaWdub3JlZDogdHJ1
ZQotICAgIGlnbm9yZWRCeURlZmF1bHQ6IHRydWUKLSAgICBoaWRkZW46IHRydWUKLQotPGltZyBz
cmM9ImRhdGE6aW1hZ2UvZ2lmLi4uIiBhbHQ9IngiPgotICAgIGV4aXN0czogdHJ1ZQotICAgIGxh
YmVsOiB4Ci0gICAgcm9sZTogaW1nCi0KLTxpbWcgc3JjPSJkYXRhOmltYWdlL2dpZi4uLiIgYWx0
PSIiPgotICAgIGV4aXN0czogdHJ1ZQotICAgIGxhYmVsOiAKLSAgICByb2xlOiBpbWcKLSAgICBp
Z25vcmVkOiB0cnVlCi0KLTxpbWcgc3JjPSJkYXRhOmltYWdlL2dpZi4uLiI+Ci0gICAgZXhpc3Rz
OiB0cnVlCi0gICAgbGFiZWw6IAotICAgIHJvbGU6IGltZwotCi08aW1nIHNyYz0iLi80MDQuZ2lm
Ij4KLSAgICBleGlzdHM6IHRydWUKLSAgICBsYWJlbDogCi0gICAgcm9sZTogaW1nCi0gICAgaWdu
b3JlZDogdHJ1ZQotCi08aW5wdXQgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgotICAgIGV4aXN0czog
ZmFsc2UKLSAgICBsYWJlbDogCi0gICAgcm9sZTogCi0KLTxpbnB1dCBhcmlhLWhpZGRlbj0idHJ1
ZSI+Ci0gICAgZXhpc3RzOiB0cnVlCi0gICAgbGFiZWw6IAotICAgIHJvbGU6IAotICAgIGZvY3Vz
ZWQ6IGZhbHNlCi0gICAgaWdub3JlZDogdHJ1ZQotICAgIGlnbm9yZWRCeURlZmF1bHQ6IHRydWUK
LSAgICBoaWRkZW46IHRydWUKLSAgICByZXF1aXJlZDogZmFsc2UKLQotPGRpdiByb2xlPSJyYWRp
byIgYXJpYS1jaGVja2VkPSJmYWxzZSI+dW5jaGVja2VkPC9kaXY+Ci0gICAgZXhpc3RzOiB0cnVl
Ci0gICAgbGFiZWw6IHVuY2hlY2tlZAotICAgIHJvbGU6IHJhZGlvCi0gICAgY2hlY2tlZDogZmFs
c2UKLSAgICBwYXJlbnROb2RlSWQ6IGV4aXN0cwotICAgIHJlcXVpcmVkOiBmYWxzZQotCi08ZGl2
IHJvbGU9InJhZGlvIiBhcmlhLWNoZWNrZWQ9Im1peGVkIj51bmNoZWNrZWQgW3NpY10gbWl4ZWQg
c3RhdGUgd2lsbCBub3QgYmUgZXhwb3NlZCBvbiByYWRpb3MgcGVyIEFSSUEgc3BlYy48L2Rpdj4K
LSAgICBleGlzdHM6IHRydWUKLSAgICBsYWJlbDogdW5jaGVja2VkIFtzaWNdIG1peGVkIHN0YXRl
IHdpbGwgbm90IGJlIGV4cG9zZWQgb24gcmFkaW9zIHBlciBBUklBIHNwZWMuCi0gICAgcm9sZTog
cmFkaW8KLSAgICBjaGVja2VkOiBmYWxzZQotICAgIHBhcmVudE5vZGVJZDogZXhpc3RzCi0gICAg
cmVxdWlyZWQ6IGZhbHNlCi0KLTxkaXYgcm9sZT0icmFkaW8iIGFyaWEtY2hlY2tlZD0idHJ1ZSI+
Y2hlY2tlZDwvZGl2PgotICAgIGV4aXN0czogdHJ1ZQotICAgIGxhYmVsOiBjaGVja2VkCi0gICAg
cm9sZTogcmFkaW8KLSAgICBjaGVja2VkOiB0cnVlCi0gICAgcGFyZW50Tm9kZUlkOiBleGlzdHMK
LSAgICByZXF1aXJlZDogZmFsc2UKLQotPGRpdiByb2xlPSJyYWRpbyI+dW5jaGVja2VkIChjaGVj
a2VkIHVuZGVmaW5lZCBldmFscyB0byBmYWxzZSBvbiByYWRpbyk8L2Rpdj4KLSAgICBleGlzdHM6
IHRydWUKLSAgICBsYWJlbDogdW5jaGVja2VkIChjaGVja2VkIHVuZGVmaW5lZCBldmFscyB0byBm
YWxzZSBvbiByYWRpbykKLSAgICByb2xlOiByYWRpbwotICAgIGNoZWNrZWQ6IGZhbHNlCi0gICAg
cGFyZW50Tm9kZUlkOiBleGlzdHMKLSAgICByZXF1aXJlZDogZmFsc2UKLQotPGlucHV0IHR5cGU9
InJhZGlvIiBjaGVja2VkPSIiPgotICAgIGV4aXN0czogdHJ1ZQotICAgIGxhYmVsOiAKLSAgICBy
b2xlOiByYWRpbwotICAgIGNoZWNrZWQ6IHRydWUKLSAgICBmb2N1c2VkOiBmYWxzZQotICAgIHJl
cXVpcmVkOiBmYWxzZQotCi08aW5wdXQgdHlwZT0icmFkaW8iPgotICAgIGV4aXN0czogdHJ1ZQot
ICAgIGxhYmVsOiAKLSAgICByb2xlOiByYWRpbwotICAgIGNoZWNrZWQ6IGZhbHNlCi0gICAgZm9j
dXNlZDogZmFsc2UKLSAgICByZXF1aXJlZDogZmFsc2UKLQotPGRpdiByb2xlPSJjaGVja2JveCIg
YXJpYS1jaGVja2VkPSJmYWxzZSI+dW5jaGVja2VkPC9kaXY+Ci0gICAgZXhpc3RzOiB0cnVlCi0g
ICAgbGFiZWw6IHVuY2hlY2tlZAotICAgIHJvbGU6IGNoZWNrYm94Ci0gICAgY2hlY2tlZDogZmFs
c2UKLSAgICBwYXJlbnROb2RlSWQ6IGV4aXN0cwotICAgIHJlcXVpcmVkOiBmYWxzZQotCi08ZGl2
IHJvbGU9ImNoZWNrYm94IiBhcmlhLWNoZWNrZWQ9Im1peGVkIj5taXhlZDwvZGl2PgotICAgIGV4
aXN0czogdHJ1ZQotICAgIGxhYmVsOiBtaXhlZAotICAgIHJvbGU6IGNoZWNrYm94Ci0gICAgY2hl
Y2tlZDogbWl4ZWQKLSAgICBwYXJlbnROb2RlSWQ6IGV4aXN0cwotICAgIHJlcXVpcmVkOiBmYWxz
ZQotCi08ZGl2IHJvbGU9ImNoZWNrYm94IiBhcmlhLWNoZWNrZWQ9InRydWUiPmNoZWNrZWQ8L2Rp
dj4KLSAgICBleGlzdHM6IHRydWUKLSAgICBsYWJlbDogY2hlY2tlZAotICAgIHJvbGU6IGNoZWNr
Ym94Ci0gICAgY2hlY2tlZDogdHJ1ZQotICAgIHBhcmVudE5vZGVJZDogZXhpc3RzCi0gICAgcmVx
dWlyZWQ6IGZhbHNlCi0KLTxkaXYgcm9sZT0iY2hlY2tib3giPnVuY2hlY2tlZCAoY2hlY2tlZCB1
bmRlZmluZWQgZXZhbHMgdG8gZmFsc2Ugb24gY2hlY2tib3gpPC9kaXY+Ci0gICAgZXhpc3RzOiB0
cnVlCi0gICAgbGFiZWw6IHVuY2hlY2tlZCAoY2hlY2tlZCB1bmRlZmluZWQgZXZhbHMgdG8gZmFs
c2Ugb24gY2hlY2tib3gpCi0gICAgcm9sZTogY2hlY2tib3gKLSAgICBjaGVja2VkOiBmYWxzZQot
ICAgIHBhcmVudE5vZGVJZDogZXhpc3RzCi0gICAgcmVxdWlyZWQ6IGZhbHNlCi0KLTxpbnB1dCB0
eXBlPSJjaGVja2JveCIgY2hlY2tlZD0iIj4KLSAgICBleGlzdHM6IHRydWUKLSAgICBsYWJlbDog
Ci0gICAgcm9sZTogY2hlY2tib3gKLSAgICBjaGVja2VkOiB0cnVlCi0gICAgZm9jdXNlZDogZmFs
c2UKLSAgICByZXF1aXJlZDogZmFsc2UKLQotPGlucHV0IHR5cGU9ImNoZWNrYm94Ij4KLSAgICBl
eGlzdHM6IHRydWUKLSAgICBsYWJlbDogCi0gICAgcm9sZTogY2hlY2tib3gKLSAgICBjaGVja2Vk
OiBmYWxzZQotICAgIGZvY3VzZWQ6IGZhbHNlCi0gICAgcmVxdWlyZWQ6IGZhbHNlCi0KLTxkaXYg
cm9sZT0idGV4dGJveCIgdGFiaW5kZXg9IjAiIGFyaWEtZGlzYWJsZWQ9InRydWUiPmRpc2FibGVk
PC9kaXY+Ci0gICAgZXhpc3RzOiB0cnVlCi0gICAgbGFiZWw6IAotICAgIHJvbGU6IAotICAgIGRp
c2FibGVkOiB0cnVlCi0gICAgZm9jdXNlZDogZmFsc2UKLSAgICBwYXJlbnROb2RlSWQ6IGV4aXN0
cwotICAgIHJlYWRvbmx5OiB0cnVlCi0gICAgcmVxdWlyZWQ6IGZhbHNlCi0KLTxpbnB1dCBkaXNh
YmxlZD0iIiB2YWx1ZT0iZGlzYWJsZWQiPgotICAgIGV4aXN0czogdHJ1ZQotICAgIGxhYmVsOiAK
LSAgICByb2xlOiAKLSAgICBjaGlsZE5vZGVJZHMubGVuZ3RoOiAxCi0gICAgZGlzYWJsZWQ6IHRy
dWUKLSAgICByZXF1aXJlZDogZmFsc2UKLQotPGRpdiByb2xlPSJ0ZXh0Ym94IiB0YWJpbmRleD0i
MCIgYXJpYS1yZWFkb25seT0idHJ1ZSI+cmVhZG9ubHk8L2Rpdj4KLSAgICBleGlzdHM6IHRydWUK
LSAgICBsYWJlbDogCi0gICAgcm9sZTogCi0gICAgZm9jdXNlZDogZmFsc2UKLSAgICBwYXJlbnRO
b2RlSWQ6IGV4aXN0cwotICAgIHJlYWRvbmx5OiB0cnVlCi0gICAgcmVxdWlyZWQ6IGZhbHNlCi0K
LTxpbnB1dCByZWFkb25seT0iIiB2YWx1ZT0icmVhZG9ubHkiPgotICAgIGV4aXN0czogdHJ1ZQot
ICAgIGxhYmVsOiAKLSAgICByb2xlOiAKLSAgICBjaGlsZE5vZGVJZHMubGVuZ3RoOiAxCi0gICAg
Zm9jdXNlZDogZmFsc2UKLSAgICByZWFkb25seTogdHJ1ZQotICAgIHJlcXVpcmVkOiBmYWxzZQot
Ci08aW5wdXQgYXJpYS1pbnZhbGlkPSJmb28iIHZhbHVlPSJmYWtlIHZhbHVlIHdpbGwgZXZhbCB0
byB0cnVlIj4KLSAgICBleGlzdHM6IHRydWUKLSAgICBsYWJlbDogCi0gICAgcm9sZTogCi0gICAg
Y2hpbGROb2RlSWRzLmxlbmd0aDogMQotICAgIGZvY3VzZWQ6IGZhbHNlCi0gICAgaW52YWxpZDog
dHJ1ZQotICAgIHJlcXVpcmVkOiBmYWxzZQotCi08aW5wdXQgYXJpYS1pbnZhbGlkPSJzcGVsbGlu
ZyIgdmFsdWU9ImludmFsaWQgc3BlbGxpbmciPgotICAgIGV4aXN0czogdHJ1ZQotICAgIGxhYmVs
OiAKLSAgICByb2xlOiAKLSAgICBjaGlsZE5vZGVJZHMubGVuZ3RoOiAxCi0gICAgZm9jdXNlZDog
ZmFsc2UKLSAgICBpbnZhbGlkOiBzcGVsbGluZwotICAgIHJlcXVpcmVkOiBmYWxzZQotCi08aW5w
dXQgYXJpYS1yZXF1aXJlZD0idHJ1ZSIgdmFsdWU9InJlcXVpcmVkIj4KLSAgICBleGlzdHM6IHRy
dWUKLSAgICBsYWJlbDogCi0gICAgcm9sZTogCi0gICAgY2hpbGROb2RlSWRzLmxlbmd0aDogMQot
ICAgIGZvY3VzZWQ6IGZhbHNlCi0gICAgcmVxdWlyZWQ6IHRydWUKLQotPGlucHV0IHJlcXVpcmVk
PSIiPgotICAgIGV4aXN0czogdHJ1ZQotICAgIGxhYmVsOiAKLSAgICByb2xlOiAKLSAgICBmb2N1
c2VkOiBmYWxzZQotICAgIHJlcXVpcmVkOiB0cnVlCi0KLTxpbnB1dD4KLSAgICBleGlzdHM6IHRy
dWUKLSAgICBsYWJlbDogCi0gICAgcm9sZTogCi0gICAgZm9jdXNlZDogZmFsc2UKLSAgICByZXF1
aXJlZDogZmFsc2UKLQotPGlucHV0IHR5cGU9ImJ1dHRvbiI+Ci0gICAgZXhpc3RzOiB0cnVlCi0g
ICAgbGFiZWw6IAotICAgIHJvbGU6IGJ1dHRvbgotICAgIGZvY3VzZWQ6IGZhbHNlCi0KLTxidXR0
b24+PC9idXR0b24+Ci0gICAgZXhpc3RzOiB0cnVlCi0gICAgbGFiZWw6IAotICAgIHJvbGU6IGJ1
dHRvbgotICAgIGZvY3VzZWQ6IGZhbHNlCi0KLTxkaXYgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0i
MCIgYXJpYS1wcmVzc2VkPSJmYWxzZSI+Tm90IFByZXNzZWQuPC9kaXY+Ci0gICAgZXhpc3RzOiB0
cnVlCi0gICAgbGFiZWw6IE5vdCBQcmVzc2VkLgotICAgIHJvbGU6IAotICAgIGZvY3VzZWQ6IGZh
bHNlCi0gICAgcGFyZW50Tm9kZUlkOiBleGlzdHMKLSAgICBwcmVzc2VkOiBmYWxzZQotICAgIHJl
cXVpcmVkOiBmYWxzZQotCi08ZGl2IHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGFyaWEtcHJl
c3NlZD0idHJ1ZSI+UHJlc3NlZC48L2Rpdj4KLSAgICBleGlzdHM6IHRydWUKLSAgICBsYWJlbDog
UHJlc3NlZC4KLSAgICByb2xlOiAKLSAgICBmb2N1c2VkOiBmYWxzZQotICAgIHBhcmVudE5vZGVJ
ZDogZXhpc3RzCi0gICAgcHJlc3NlZDogdHJ1ZQotICAgIHJlcXVpcmVkOiBmYWxzZQotCi08ZGl2
IHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGFyaWEtZGlzYWJsZWQ9InRydWUiPmRpc2FibGVk
PC9kaXY+Ci0gICAgZXhpc3RzOiB0cnVlCi0gICAgbGFiZWw6IGRpc2FibGVkCi0gICAgcm9sZTog
YnV0dG9uCi0gICAgZGlzYWJsZWQ6IHRydWUKLSAgICBmb2N1c2VkOiBmYWxzZQotICAgIHBhcmVu
dE5vZGVJZDogZXhpc3RzCi0KLTxkaXYgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCI+PC9kaXY+
Ci0gICAgZXhpc3RzOiB0cnVlCi0gICAgbGFiZWw6IAotICAgIHJvbGU6IGJ1dHRvbgotICAgIGZv
Y3VzZWQ6IGZhbHNlCi0gICAgcGFyZW50Tm9kZUlkOiBleGlzdHMKLQotPGRpdiByb2xlPSJncm91
cCIgYXJpYS1saXZlPSJhc3NlcnRpdmUiIGFyaWEtYXRvbWljPSJ0cnVlIj5hc3NlcnRpdmUgKGFu
ZCBhdG9taWMpPC9kaXY+Ci0gICAgZXhpc3RzOiB0cnVlCi0gICAgbGFiZWw6IAotICAgIHJvbGU6
IGdyb3VwCi0gICAgY2hpbGROb2RlSWRzLmxlbmd0aDogMQotICAgIGxpdmVSZWdpb25BdG9taWM6
IHRydWUKLSAgICBsaXZlUmVnaW9uUmVsZXZhbnQ6IGFkZGl0aW9ucyx0ZXh0Ci0gICAgbGl2ZVJl
Z2lvblN0YXR1czogYXNzZXJ0aXZlCi0gICAgcGFyZW50Tm9kZUlkOiBleGlzdHMKLQotPGRpdiBy
b2xlPSJncm91cCIgYXJpYS1saXZlPSJwb2xpdGUiPnBvbGl0ZTwvZGl2PgotICAgIGV4aXN0czog
dHJ1ZQotICAgIGxhYmVsOiAKLSAgICByb2xlOiBncm91cAotICAgIGNoaWxkTm9kZUlkcy5sZW5n
dGg6IDEKLSAgICBsaXZlUmVnaW9uQXRvbWljOiBmYWxzZQotICAgIGxpdmVSZWdpb25SZWxldmFu
dDogYWRkaXRpb25zLHRleHQKLSAgICBsaXZlUmVnaW9uU3RhdHVzOiBwb2xpdGUKLSAgICBwYXJl
bnROb2RlSWQ6IGV4aXN0cwotCi08ZGl2IHJvbGU9Imdyb3VwIiBhcmlhLWxpdmU9Im9mZiI+b2Zm
PC9kaXY+Ci0gICAgZXhpc3RzOiB0cnVlCi0gICAgbGFiZWw6IAotICAgIHJvbGU6IGdyb3VwCi0g
ICAgY2hpbGROb2RlSWRzLmxlbmd0aDogMQotICAgIHBhcmVudE5vZGVJZDogZXhpc3RzCi0KLTxk
aXYgcm9sZT0ibGlzdGJveCIgYXJpYS1idXN5PSJ0cnVlIj4KLSAgICA8IS0tIERlc3BpdGUgaGF2
aW5nIG5vIHJlcXVpcmVkIG9wdGlvbiBjaGlsZHJlbiwgdGhpcyBpcyB2YWxpZCBiZWNhdXNlIGl0
IGlzIG1hcmtlZCBhcyBidXN5LiAtLT4KLSAgICA8IS0tIEZvciBleGFtcGxlLCB3YWl0aW5nIGZv
ciBhIHNjcmlwdCB0byBsb2FkIGl0cyBjb250ZW50cy4gLS0+Ci08L2Rpdj4KLSAgICBleGlzdHM6
IHRydWUKLSAgICBsYWJlbDogCi0gICAgcm9sZTogbGlzdGJveAotICAgIGJ1c3k6IHRydWUKLSAg
ICBwYXJlbnROb2RlSWQ6IGV4aXN0cwotICAgIHJlcXVpcmVkOiBmYWxzZQotCi08c3BhbiBhcmlh
LWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgotICAgIGV4aXN0czogdHJ1ZQotICAgIGxhYmVsOiAKLSAg
ICByb2xlOiAKLSAgICBpZ25vcmVkOiB0cnVlCi0gICAgaWdub3JlZEJ5RGVmYXVsdDogdHJ1ZQot
ICAgIGhpZGRlbjogdHJ1ZQotICAgIHBhcmVudE5vZGVJZDogZXhpc3RzCi0KLTxzcGFuPjwvc3Bh
bj4KLSAgICBleGlzdHM6IHRydWUKLSAgICBsYWJlbDogCi0gICAgcm9sZTogCi0gICAgaWdub3Jl
ZDogdHJ1ZQotICAgIGlnbm9yZWRCeURlZmF1bHQ6IHRydWUKLSAgICBwYXJlbnROb2RlSWQ6IGV4
aXN0cwotCi08ZGl2IGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj4KLSAgICBleGlzdHM6IHRydWUK
LSAgICBsYWJlbDogCi0gICAgcm9sZTogCi0gICAgaWdub3JlZDogdHJ1ZQotICAgIGlnbm9yZWRC
eURlZmF1bHQ6IHRydWUKLSAgICBoaWRkZW46IHRydWUKLSAgICBwYXJlbnROb2RlSWQ6IGV4aXN0
cwotCi08ZGl2PjwvZGl2PgotICAgIGV4aXN0czogdHJ1ZQotICAgIGxhYmVsOiAKLSAgICByb2xl
OiAKLSAgICBpZ25vcmVkOiB0cnVlCi0gICAgcGFyZW50Tm9kZUlkOiBleGlzdHMKLQotPGRpdiBy
b2xlPSJwcmVzZW50YXRpb24iPjxkaXY+PC9kaXY+PC9kaXY+Ci0gICAgZXhpc3RzOiB0cnVlCi0g
ICAgbGFiZWw6IAotICAgIHJvbGU6IHByZXNlbnRhdGlvbgotICAgIGlnbm9yZWQ6IHRydWUKLSAg
ICBwYXJlbnROb2RlSWQ6IGV4aXN0cwotCi08ZGl2IHJvbGU9Imdyb3VwIj4KLSAgICA8ZGl2PmZv
bzwvZGl2PgotICAgIDxzcGFuPgotICAgICAgICBiYXIKLSAgICAgICAgPHNwYW4gcm9sZT0iYnV0
dG9uIj5iYXo8L3NwYW4+Ci0gICAgPC9zcGFuPgotICAgIDxkaXY+PC9kaXY+Ci0gICAgPGRpdj48
L2Rpdj4KLTwvZGl2PgotICAgIGV4aXN0czogdHJ1ZQotICAgIGxhYmVsOiAKLSAgICByb2xlOiBn
cm91cAotICAgIGNoaWxkTm9kZUlkcy5sZW5ndGg6IDMKLSAgICBwYXJlbnROb2RlSWQ6IGV4aXN0
cwotCi08ZGl2PjxkaXY+PC9kaXY+PC9kaXY+Ci0gICAgZXhpc3RzOiB0cnVlCi0gICAgbGFiZWw6
IAotICAgIHJvbGU6IAotICAgIGlnbm9yZWQ6IHRydWUKLSAgICBwYXJlbnROb2RlSWQ6IGV4aXN0
cwotCi08c2NyaXB0IHN0eWxlPSJkaXNwbGF5OmJsb2NrOyI+PC9zY3JpcHQ+Ci0gICAgZXhpc3Rz
OiB0cnVlCi0gICAgbGFiZWw6IAotICAgIHJvbGU6IGdyb3VwCi0gICAgaWdub3JlZDogdHJ1ZQot
ICAgIHBhcmVudE5vZGVJZDogZXhpc3RzCi0KLTxzY3JpcHQ+PC9zY3JpcHQ+Ci0gICAgZXhpc3Rz
OiBmYWxzZQotICAgIGxhYmVsOiAKLSAgICByb2xlOiAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS9nZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllc0Zvck5v
ZGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20vZ2V0QWNjZXNzaWJp
bGl0eVByb3BlcnRpZXNGb3JOb2RlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAyM2I3OGM0MGI4MjYwZDk2ZTJlMWMzZWIzMGM3N2Y4ZmNhOTUwNWUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL2RvbS9nZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllc0Zvck5vZGUuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDIyNSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Vz
L3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25Mb2FkPSJydW5U
ZXN0KCkiPgotCi08cD5DaGVja2luZyBXZWIgSW5zcGVjdG9yIHByb3RvY29sIGZvciB0aGUgQWNj
ZXNzaWJpbGl0eSBOb2RlIEluc3BlY3Rvci48L3A+Ci0KLTxkaXYgaWQ9ImV4YW1wbGVzIj4KLQot
PHNjcmlwdCBjbGFzcz0iZXgiPjwvc2NyaXB0PgotPHNjcmlwdCBjbGFzcz0iZXgiIHN0eWxlPSJk
aXNwbGF5OmJsb2NrOyI+PC9zY3JpcHQ+Ci0KLTxkaXYgY2xhc3M9ImV4Ij48ZGl2PjwvZGl2Pjwv
ZGl2PgotCi08ZGl2IHJvbGU9Imdyb3VwIiBjbGFzcz0iZXgiPgotICAgIDxkaXY+Zm9vPC9kaXY+
Ci0gICAgPHNwYW4+Ci0gICAgICAgIGJhcgotICAgICAgICA8c3BhbiByb2xlPSJidXR0b24iPmJh
ejwvc3Bhbj4KLSAgICA8L3NwYW4+Ci0gICAgPGRpdj48L2Rpdj4KLSAgICA8ZGl2PjwvZGl2Pgot
PC9kaXY+Ci0KLTxkaXYgY2xhc3M9ImV4IiByb2xlPSJwcmVzZW50YXRpb24iPjxkaXY+PC9kaXY+
PC9kaXY+Ci08ZGl2IGNsYXNzPSJleCI+PC9kaXY+Ci08ZGl2IGNsYXNzPSJleCIgYXJpYS1oaWRk
ZW49InRydWUiPjwvZGl2PgotPHNwYW4gY2xhc3M9ImV4Ij48L3NwYW4+Ci08c3BhbiBjbGFzcz0i
ZXgiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+Ci0KLTxkaXYgcm9sZT0ibGlzdGJveCIgY2xh
c3M9ImV4IiBhcmlhLWJ1c3k9InRydWUiPgotICAgIDwhLS0gRGVzcGl0ZSBoYXZpbmcgbm8gcmVx
dWlyZWQgb3B0aW9uIGNoaWxkcmVuLCB0aGlzIGlzIHZhbGlkIGJlY2F1c2UgaXQgaXMgbWFya2Vk
IGFzIGJ1c3kuIC0tPgotICAgIDwhLS0gRm9yIGV4YW1wbGUsIHdhaXRpbmcgZm9yIGEgc2NyaXB0
IHRvIGxvYWQgaXRzIGNvbnRlbnRzLiAtLT4KLTwvZGl2PgotCi08IS0tIEZ1bGwgY292ZXJhZ2Ug
b2YgbGl2ZSByZWdpb25zIGluIGdldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZV9saXZl
UmVnaW9uLmh0bWwuIC0tPgotPGRpdiBjbGFzcz0iZXgiIHJvbGU9Imdyb3VwIiBhcmlhLWxpdmU9
Im9mZiI+b2ZmPC9kaXY+Ci08ZGl2IGNsYXNzPSJleCIgcm9sZT0iZ3JvdXAiIGFyaWEtbGl2ZT0i
cG9saXRlIj5wb2xpdGU8L2Rpdj4KLTxkaXYgY2xhc3M9ImV4IiByb2xlPSJncm91cCIgYXJpYS1s
aXZlPSJhc3NlcnRpdmUiIGFyaWEtYXRvbWljPSJ0cnVlIj5hc3NlcnRpdmUgKGFuZCBhdG9taWMp
PC9kaXY+Ci0KLTxkaXYgY2xhc3M9ImV4IiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIj48L2Rp
dj4KLTxkaXYgY2xhc3M9ImV4IiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBhcmlhLWRpc2Fi
bGVkPSJ0cnVlIj5kaXNhYmxlZDwvZGl2PgotPGRpdiBjbGFzcz0iZXgiIHJvbGU9ImJ1dHRvbiIg
dGFiaW5kZXg9IjAiIGFyaWEtcHJlc3NlZD0idHJ1ZSI+UHJlc3NlZC48L2Rpdj4KLTxkaXYgY2xh
c3M9ImV4IiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBhcmlhLXByZXNzZWQ9ImZhbHNlIj5O
b3QgUHJlc3NlZC48L2Rpdj4KLTxidXR0b24gY2xhc3M9ImV4Ij48L2J1dHRvbj4KLTxpbnB1dCBj
bGFzcz0iZXgiIHR5cGU9ImJ1dHRvbiI+Ci0KLTwhLS0gRklYTUU6IElucHV0cyBtaXNzaW5nIHBh
cmVudE5vZGVJZCBodHRwOi8vd2Via2l0Lm9yZy9iLzEzMDE4MSAtLT4KLTxpbnB1dCBjbGFzcz0i
ZXgiPgotPGlucHV0IGNsYXNzPSJleCIgcmVxdWlyZWQ+Ci0KLTwhLS0gTm90ZTogVGhlc2UgY29y
cmVjdGx5IHJlcG9ydCBjaGlsZE5vZGVJZHMubGVuZ3RoIG9mIDEgYi9jIG9mIHRoZWlyIHNoYWRv
dyBET00gdHJlZS4gU2VlIGh0dHA6Ly93ZWJraXQub3JnL2IvMTMwMzAyIC0tPgotPGlucHV0IGNs
YXNzPSJleCIgYXJpYS1yZXF1aXJlZD0idHJ1ZSIgdmFsdWU9InJlcXVpcmVkIj4KLTxpbnB1dCBj
bGFzcz0iZXgiIGFyaWEtaW52YWxpZD0ic3BlbGxpbmciIHZhbHVlPSJpbnZhbGlkIHNwZWxsaW5n
Ij4KLTxpbnB1dCBjbGFzcz0iZXgiIGFyaWEtaW52YWxpZD0iZm9vIiB2YWx1ZT0iZmFrZSB2YWx1
ZSB3aWxsIGV2YWwgdG8gdHJ1ZSI+Ci08aW5wdXQgY2xhc3M9ImV4IiByZWFkb25seSB2YWx1ZT0i
cmVhZG9ubHkiPgotCi08ZGl2IGNsYXNzPSJleCIgcm9sZT0idGV4dGJveCIgdGFiaW5kZXg9IjAi
IGFyaWEtcmVhZG9ubHk9InRydWUiPnJlYWRvbmx5PC9kaXY+Ci08aW5wdXQgY2xhc3M9ImV4IiBk
aXNhYmxlZCB2YWx1ZT0iZGlzYWJsZWQiPgotPGRpdiBjbGFzcz0iZXgiIHJvbGU9InRleHRib3gi
IHRhYmluZGV4PSIwIiBhcmlhLWRpc2FibGVkPSJ0cnVlIj5kaXNhYmxlZDwvZGl2PgotCi08aW5w
dXQgY2xhc3M9ImV4IiB0eXBlPSJjaGVja2JveCI+Ci08aW5wdXQgY2xhc3M9ImV4IiB0eXBlPSJj
aGVja2JveCIgY2hlY2tlZD4KLTxkaXYgY2xhc3M9ImV4IiByb2xlPSJjaGVja2JveCI+dW5jaGVj
a2VkIChjaGVja2VkIHVuZGVmaW5lZCBldmFscyB0byBmYWxzZSBvbiBjaGVja2JveCk8L2Rpdj4K
LTxkaXYgY2xhc3M9ImV4IiByb2xlPSJjaGVja2JveCIgYXJpYS1jaGVja2VkPSJ0cnVlIj5jaGVj
a2VkPC9kaXY+Ci08ZGl2IGNsYXNzPSJleCIgcm9sZT0iY2hlY2tib3giIGFyaWEtY2hlY2tlZD0i
bWl4ZWQiPm1peGVkPC9kaXY+Ci08ZGl2IGNsYXNzPSJleCIgcm9sZT0iY2hlY2tib3giIGFyaWEt
Y2hlY2tlZD0iZmFsc2UiPnVuY2hlY2tlZDwvZGl2PgotCi08aW5wdXQgY2xhc3M9ImV4IiB0eXBl
PSJyYWRpbyI+Ci08aW5wdXQgY2xhc3M9ImV4IiB0eXBlPSJyYWRpbyIgY2hlY2tlZD4KLTxkaXYg
Y2xhc3M9ImV4IiByb2xlPSJyYWRpbyI+dW5jaGVja2VkIChjaGVja2VkIHVuZGVmaW5lZCBldmFs
cyB0byBmYWxzZSBvbiByYWRpbyk8L2Rpdj4KLTxkaXYgY2xhc3M9ImV4IiByb2xlPSJyYWRpbyIg
YXJpYS1jaGVja2VkPSJ0cnVlIj5jaGVja2VkPC9kaXY+Ci08ZGl2IGNsYXNzPSJleCIgcm9sZT0i
cmFkaW8iIGFyaWEtY2hlY2tlZD0ibWl4ZWQiPnVuY2hlY2tlZCBbc2ljXSBtaXhlZCBzdGF0ZSB3
aWxsIG5vdCBiZSBleHBvc2VkIG9uIHJhZGlvcyBwZXIgQVJJQSBzcGVjLjwvZGl2PgotPGRpdiBj
bGFzcz0iZXgiIHJvbGU9InJhZGlvIiBhcmlhLWNoZWNrZWQ9ImZhbHNlIj51bmNoZWNrZWQ8L2Rp
dj4KLQotPGlucHV0IGNsYXNzPSJleCIgYXJpYS1oaWRkZW49InRydWUiPgotPGlucHV0IGNsYXNz
PSJleCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgotCi08IS0tIEZJWE1FOiBJbWFnZXMgbWlzc2lu
ZyBwYXJlbnROb2RlSWQgaHR0cDovL3dlYmtpdC5vcmcvYi8xMzAxODEgLS0+Ci08aW1nIGNsYXNz
PSJleCIgc3JjPSIuLzQwNC5naWYiPjwhLS0gaW1nOm5vdChbYWx0XSkgaWdub3JlZCBpZiBpdCBk
b2VzIG5vdCBsb2FkLiAgLS0+Ci08aW1nIGNsYXNzPSJleCIgc3JjPSJkYXRhOmltYWdlL2dpZjti
YXNlNjQsUjBsR09EbGhFQUFSQUpFQ0FPSGg0VXBLU2dBQUFBQUFBQ0g1QkFFQUFBSUFMQUFBQUFB
UUFCRUFBQUlsbEI4Wng2M2I0b3RTVVdjdnl1ejVENGJpU0Q3QWlacm9XU1hhNXI3Q0pOT3ZyYTFS
QVFBNyI+Ci08aW1nIGNsYXNzPSJleCIgc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09E
bGhFQUFSQUpFQ0FPSGg0VXBLU2dBQUFBQUFBQ0g1QkFFQUFBSUFMQUFBQUFBUUFCRUFBQUlsbEI4
Wng2M2I0b3RTVVdjdnl1ejVENGJpU0Q3QWlacm9XU1hhNXI3Q0pOT3ZyYTFSQVFBNyIgYWx0PSIi
PgotPGltZyBjbGFzcz0iZXgiIHNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoRUFB
UkFKRUNBT0hoNFVwS1NnQUFBQUFBQUNINUJBRUFBQUlBTEFBQUFBQVFBQkVBQUFJbGxCOFp4NjNi
NG90U1VXY3Z5dXo1RDRiaVNEN0FpWnJvV1NYYTVyN0NKTk92cmExUkFRQTciIGFsdD0ieCI+Ci08
aW1nIGNsYXNzPSJleCIgc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhFQUFSQUpF
Q0FPSGg0VXBLU2dBQUFBQUFBQ0g1QkFFQUFBSUFMQUFBQUFBUUFCRUFBQUlsbEI4Wng2M2I0b3RT
VVdjdnl1ejVENGJpU0Q3QWlacm9XU1hhNXI3Q0pOT3ZyYTFSQVFBNyIgYWx0PSJ4IiBhcmlhLWhp
ZGRlbj0idHJ1ZSI+Ci08aW1nIGNsYXNzPSJleCIgc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQs
UjBsR09EbGhFQUFSQUpFQ0FPSGg0VXBLU2dBQUFBQUFBQ0g1QkFFQUFBSUFMQUFBQUFBUUFCRUFB
QUlsbEI4Wng2M2I0b3RTVVdjdnl1ejVENGJpU0Q3QWlacm9XU1hhNXI3Q0pOT3ZyYTFSQVFBNyIg
YWx0PSJ4IiBzdHlsZT0iZGlzcGxheTpub25lOyI+Ci0KLTxzZWxlY3QgbXVsdGlwbGUgaWQ9ImZs
b3dlZFRvMiI+Ci0gICAgPG9wdGlvbiBjbGFzcz0iZXgiIHNlbGVjdGVkPkZJWE1FOiBTZWxlY3Rl
ZCBpcyBmYWxzZS4gRXhwZWN0ZWQgdHJ1ZS4gaHR0cDovL3dlYmtpdC5vcmcvYi8xMjk4MzU8L29w
dGlvbj4KLSAgICA8b3B0aW9uIGNsYXNzPSJleCI+bm90IHNlbGVjdGVkPC9vcHRpb24+Ci08L3Nl
bGVjdD4KLQotPGlucHV0IGNsYXNzPSJleCIgcm9sZT0iY29tYm9ib3giIGFyaWEtb3ducz0ib3du
ZWRsaXN0Ym94IGludmFsaWRJZFJlZiIgYXJpYS1jb250cm9scz0ib3duZWRsaXN0Ym94IGludmFs
aWRJZFJlZiI+Ci08ZGl2IHJvbGU9Imxpc3Rib3giIGNsYXNzPSJleCIgaWQ9Im93bmVkbGlzdGJv
eCI+Ci0gICAgPGRpdiBjbGFzcz0iZXgiIHJvbGU9Im9wdGlvbiIgYXJpYS1zZWxlY3RlZD0idHJ1
ZSI+c2VsZWN0ZWQ8L2Rpdj4KLSAgICA8ZGl2IGNsYXNzPSJleCIgcm9sZT0ib3B0aW9uIiBhcmlh
LXNlbGVjdGVkPSJmYWxzZSI+bm90IHNlbGVjdGVkPC9kaXY+Ci08L2Rpdj4KLQotPGRpdiByb2xl
PSJ0YWJsaXN0IiBjbGFzcz0iZXgiIGFyaWEtZmxvd3RvPSJmbG93ZWRUbzEgaW52YWxpZElkUmVm
IGZsb3dlZFRvMiI+Ci0gICAgPGRpdiBjbGFzcz0iZXgiIHJvbGU9InRhYiIgYXJpYS1zZWxlY3Rl
ZD0idHJ1ZSI+c2VsZWN0ZWQ8L2Rpdj4KLSAgICA8ZGl2IGNsYXNzPSJleCIgcm9sZT0idGFiIiBh
cmlhLXNlbGVjdGVkPSJmYWxzZSI+bm90IHNlbGVjdGVkPC9kaXY+Ci08L2Rpdj4KLQotPGRpdiBy
b2xlPSJsaXN0Ym94IiBjbGFzcz0iZXgiIGFyaWEtbXVsdGlzZWxlY3RhYmxlPSJ0cnVlIj4KLSAg
ICA8ZGl2IHJvbGU9Im9wdGlvbiIgYXJpYS1zZWxlY3RlZD0idHJ1ZSI+c2VsZWN0ZWQ8L2Rpdj4K
LSAgICA8ZGl2IHJvbGU9Im9wdGlvbiIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiPm5vdCBzZWxlY3Rl
ZDwvZGl2PgotICAgIDxkaXYgcm9sZT0ib3B0aW9uIiBhcmlhLXNlbGVjdGVkPSJ0cnVlIj5zZWxl
Y3RlZDwvZGl2PgotPC9kaXY+Ci0KLTxkaXYgcm9sZT0ibGlzdGJveCIgYXJpYS1idXN5PSJ0cnVl
Ij4KLSAgICA8ZGl2IGNsYXNzPSJleCIgcm9sZT0ib3B0aW9uIj5idXN5IChwYXJlbnQpPC9kaXY+
Ci0gICAgPGRpdiBjbGFzcz0iZXgiIHJvbGU9Im9wdGlvbiIgYXJpYS1idXN5PSJ0cnVlIj5idXN5
IChzZWxmKTwvZGl2PgotPC9kaXY+Ci0KLTx1bCByb2xlPSJ0cmVlIiBjbGFzcz0iZXgiIGlkPSJm
bG93ZWRUbzEiIGFyaWEtYWN0aXZlZGVzY2VuZGFudD0iYWN0aXZlZGVzY2VuZGFudCI+Ci0gICAg
PGxpIGNsYXNzPSJleCIgcm9sZT0idHJlZWl0ZW0iIGFyaWEtZXhwYW5kZWQ9InRydWUiPmV4cGFu
ZGVkPC9saT4KLSAgICA8bGkgY2xhc3M9ImV4IiByb2xlPSJ0cmVlaXRlbSIgYXJpYS1leHBhbmRl
ZD0iZmFsc2UiIGlkPSJhY3RpdmVkZXNjZW5kYW50IiBhcmlhLXNlbGVjdGVkPSJ0cnVlIj5jb2xs
YXBzZWQ8L2xpPgotICAgIDxsaSBjbGFzcz0iZXgiIHJvbGU9InRyZWVpdGVtIiBhcmlhLWV4cGFu
ZGVkPSJ1bmRlZmluZWQiPmV4cGFuZGVkPC9saT4KLTwvdWw+Ci0KLTwhLS0gRnVsbCB0ZXN0IG9m
IG1vdXNlRXZlbnROb2RlSWQgaW4gZ2V0QWNjZXNzaWJpbGl0eVByb3BlcnRpZXNGb3JOb2RlX21v
dXNlRXZlbnROb2RlSWQuaHRtbC4gLS0+Ci08ZGl2IGNsYXNzPSJleCIgb25jbGljaz0idm9pZCgw
KTsiPmNsaWNrPC9kaXY+Ci0KLTwvZGl2PgotCi08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCI+Ci0KLWZ1bmN0aW9uICQoc2VsZWN0b3IpIHsKLSAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbChzZWxlY3Rvcik7Ci19Ci1mdW5jdGlvbiBjbGVhbnVwKCkgewotICAgIC8vIEhp
ZGUgdGhlIHRlc3QgZWxlbWVudCBjb250YWluZXIgdG8gYXZvaWQgaXJyZWxldmFudCBvdXRwdXQg
ZGlmZnMgb24gc3Vic2VxdWVudCB1cGRhdGVzLgotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJleGFtcGxlcyIpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7Ci19Ci0KLWZ1bmN0aW9uIHRlc3Qo
KSB7Ci0KLSAgICB2YXIgZXhhbXBsZXMgPSBbXTsKLSAgICB2YXIgZG9jdW1lbnROb2RlSWQgPSBu
dWxsOwotCi0gICAgZnVuY3Rpb24gb25Hb3REb2N1bWVudChyZXNwb25zZSkgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVzcG9uc2UpOwotICAgICAgICBkb2N1bWVudE5v
ZGVJZCA9IHJlc3BvbnNlLnJlc3VsdC5yb290Lm5vZGVJZDsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5zZW5kQ29tbWFuZCgiRE9NLmdldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZSIsIHsi
bm9kZUlkIjogZG9jdW1lbnROb2RlSWR9LCBvbkdvdEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9y
RG9jdW1lbnROb2RlKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBvbkdvdEFjY2Vzc2liaWxpdHlQ
cm9wZXJ0aWVzRm9yRG9jdW1lbnROb2RlKHJlc3BvbnNlKSB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCIj
ZG9jdW1lbnQiKTsKLSAgICAgICAgbG9nQWNjZXNzaWJpbGl0eVByb3BlcnRpZXMocmVzcG9uc2Uu
cmVzdWx0LnByb3BlcnRpZXMpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiXG4iKTsKLSAg
ICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRE9NLnF1ZXJ5U2VsZWN0b3JBbGwiLCB7
Im5vZGVJZCI6IGRvY3VtZW50Tm9kZUlkLCAic2VsZWN0b3IiOiAiLmV4In0sIG9uR290UXVlcnlT
ZWxlY3RvckFsbCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gb25Hb3RRdWVyeVNlbGVjdG9yQWxs
KHJlc3BvbnNlKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25z
ZSk7Ci0gICAgICAgIGV4YW1wbGVzID0gcmVzcG9uc2UucmVzdWx0Lm5vZGVJZHM7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJUb3RhbCBlbGVtZW50cyB0byBiZSB0ZXN0ZWQ6ICIgKyBleGFt
cGxlcy5sZW5ndGggKyAiLiIpOwotICAgICAgICBsb29wKCk7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gbG9vcCgpIHsKLSAgICAgICAgaWYgKGV4YW1wbGVzLmxlbmd0aCkgewotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRE9NLmdldE91dGVySFRNTCIsIHsibm9kZUlkIjog
ZXhhbXBsZXNbZXhhbXBsZXMubGVuZ3RoLTFdfSwgb25Hb3RPdXRlckhUTUwpOwotICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgZmluaXNoVGVzdCgpOwotICAgICAgICB9Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gb25Hb3RPdXRlckhUTUwocmVzcG9uc2UpIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5jaGVja0ZvckVycm9yKHJlc3BvbnNlKTsKLSAgICAgICAgdmFyIG91dGVySFRNTCA9IHJl
c3BvbnNlLnJlc3VsdC5vdXRlckhUTUw7Ci0gICAgICAgIG91dGVySFRNTCA9IG91dGVySFRNTC5y
ZXBsYWNlKC8gY2xhc3M9ImV4Ii9nLCAiIik7IC8vIHJlbW92ZSBhbnkgZHVwbGljYXRlZCwgdW5u
ZWNlc3NhcnkgY2xhc3MgYXR0cmlidXRlcwotICAgICAgICBvdXRlckhUTUwgPSBvdXRlckhUTUwu
cmVwbGFjZSgvO2Jhc2U2NCwuKj8iLywgIi4uLlwiIik7IC8vIHN1cHByZXNzIGZ1bGwgZGF0YSBV
UklzIGluIG91dHB1dAotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiXG4iICsgb3V0ZXJIVE1M
KTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRE9NLmdldEFjY2Vzc2liaWxp
dHlQcm9wZXJ0aWVzRm9yTm9kZSIsIHsibm9kZUlkIjogZXhhbXBsZXNbZXhhbXBsZXMubGVuZ3Ro
LTFdfSwgb25Hb3RBY2Nlc3NpYmlsaXR5UHJvcGVydGllcyk7Ci0gICAgfQotCi0gICAgZnVuY3Rp
b24gb25Hb3RBY2Nlc3NpYmlsaXR5UHJvcGVydGllcyhyZXNwb25zZSkgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVzcG9uc2UpOwotICAgICAgICBsb2dBY2Nlc3NpYmls
aXR5UHJvcGVydGllcyhyZXNwb25zZS5yZXN1bHQucHJvcGVydGllcyk7Ci0gICAgICAgIGV4YW1w
bGVzLnBvcCgpOwotICAgICAgICBsb29wKCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbG9nQWNj
ZXNzaWJpbGl0eVByb3BlcnRpZXMocHJvcGVydGllcykgewotICAgICAgICBmb3IgKHZhciBrZXkg
aW4gcHJvcGVydGllcykgewotICAgICAgICAgICAgdmFyIHZhbHVlID0gcHJvcGVydGllc1trZXld
OwotICAgICAgICAgICAgc3dpdGNoIChrZXkpewotICAgICAgICAgICAgY2FzZSAibm9kZUlkIjoK
LSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGNhc2UgImFjdGl2ZURlc2Nl
bmRhbnROb2RlSWQiOgotICAgICAgICAgICAgY2FzZSAibW91c2VFdmVudE5vZGVJZCI6Ci0gICAg
ICAgICAgICBjYXNlICJwYXJlbnROb2RlSWQiOgotICAgICAgICAgICAgICAgIGlmICh0eXBlb2Yg
dmFsdWUgPT09ICJudW1iZXIiKQotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiICAgICIgKyBrZXkgKyAiOiBleGlzdHMiKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIGNhc2UgImNoaWxkTm9kZUlkcyI6Ci0gICAgICAgICAgICBjYXNlICJjb250cm9s
bGVkTm9kZUlkcyI6Ci0gICAgICAgICAgICBjYXNlICJmbG93ZWROb2RlSWRzIjoKLSAgICAgICAg
ICAgIGNhc2UgIm93bmVkTm9kZUlkcyI6Ci0gICAgICAgICAgICBjYXNlICJzZWxlY3RlZENoaWxk
Tm9kZUlkcyI6Ci0gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gIm9iamVjdCIg
JiYgdmFsdWUubGVuZ3RoKQotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
ICAgICIgKyBrZXkgKyAiLmxlbmd0aDogIiArIHZhbHVlLmxlbmd0aCk7Ci0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCIgICAgIiArIGtleSArICI6ICIgKyB2YWx1ZSk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwgeyJleHByZXNzaW9u
IjogImNsZWFudXAoKSJ9LCBmdW5jdGlvbigpewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5j
b21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfSk7Ci0gICAgfQotCi0KLQotICAgIEluc3BlY3RvclRl
c3Quc2VuZENvbW1hbmQoIkRPTS5nZXREb2N1bWVudCIsIHt9LCBvbkdvdERvY3VtZW50KTsKLQot
fQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvZG9tL2dldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZV9s
aXZlUmVnaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9k
b20vZ2V0QWNjZXNzaWJpbGl0eVByb3BlcnRpZXNGb3JOb2RlX2xpdmVSZWdpb24tZXhwZWN0ZWQu
dHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyZDVjNGMyNTk5YThhOWU3NDJmMDA0
NzI5YWUwMmNmMmM4Njg0NzM4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20vZ2V0QWNjZXNzaWJp
bGl0eVByb3BlcnRpZXNGb3JOb2RlX2xpdmVSZWdpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTc1ICswLDAgQEAKLUNoZWNraW5nIFdlYiBJbnNwZWN0b3IgcHJvdG9jb2wgKHNw
ZWNpZmljYWxseSBsaXZlIHJlZ2lvbiBwcm9wZXJ0aWVzKSBmb3IgdGhlIEFjY2Vzc2liaWxpdHkg
Tm9kZSBJbnNwZWN0b3IuCi0KLVRvdGFsIGVsZW1lbnRzIHRvIGJlIHRlc3RlZDogMzEuCi0KLTxk
aXYgcm9sZT0iYWxlcnQiIGFyaWEtcmVsZXZhbnQ9InRleHQgdGV4dCI+cmVsZXZhbnQ6IHRleHQg
KGR1cGxpY2F0ZSk8L2Rpdj4KLSAgICBleGlzdHM6IHRydWUKLSAgICBsaXZlUmVnaW9uQXRvbWlj
OiB0cnVlCi0gICAgbGl2ZVJlZ2lvblJlbGV2YW50OiB0ZXh0Ci0gICAgbGl2ZVJlZ2lvblN0YXR1
czogYXNzZXJ0aXZlCi0KLTxkaXYgcm9sZT0iYWxlcnQiIGFyaWEtcmVsZXZhbnQ9ImFkZGl0aW9u
cyByZW1vdmFscyByZW1vdmFscyI+cmVsZXZhbnQ6IGFkZGl0aW9ucyByZW1vdmFscyAoZHVwbGlj
YXRlKTwvZGl2PgotICAgIGV4aXN0czogdHJ1ZQotICAgIGxpdmVSZWdpb25BdG9taWM6IHRydWUK
LSAgICBsaXZlUmVnaW9uUmVsZXZhbnQ6IGFkZGl0aW9ucyxyZW1vdmFscwotICAgIGxpdmVSZWdp
b25TdGF0dXM6IGFzc2VydGl2ZQotCi08ZGl2IHJvbGU9ImFsZXJ0IiBhcmlhLXJlbGV2YW50PSJ0
ZXh0IHJlbW92YWxzIGFkZGl0aW9ucyI+cmVsZXZhbnQ6IGFsbCAoaW1wbGljaXQpPC9kaXY+Ci0g
ICAgZXhpc3RzOiB0cnVlCi0gICAgbGl2ZVJlZ2lvbkF0b21pYzogdHJ1ZQotICAgIGxpdmVSZWdp
b25SZWxldmFudDogYWRkaXRpb25zLHJlbW92YWxzLHRleHQKLSAgICBsaXZlUmVnaW9uU3RhdHVz
OiBhc3NlcnRpdmUKLQotPGRpdiByb2xlPSJhbGVydCIgYXJpYS1yZWxldmFudD0idGV4dCBhZGRp
dGlvbnMgcmVtb3ZhbHMiPnJlbGV2YW50OiBhbGwgKGltcGxpY2l0KTwvZGl2PgotICAgIGV4aXN0
czogdHJ1ZQotICAgIGxpdmVSZWdpb25BdG9taWM6IHRydWUKLSAgICBsaXZlUmVnaW9uUmVsZXZh
bnQ6IGFkZGl0aW9ucyxyZW1vdmFscyx0ZXh0Ci0gICAgbGl2ZVJlZ2lvblN0YXR1czogYXNzZXJ0
aXZlCi0KLTxkaXYgcm9sZT0iYWxlcnQiIGFyaWEtcmVsZXZhbnQ9ImFkZGl0aW9ucyByZW1vdmFs
cyB0ZXh0Ij5yZWxldmFudDogYWxsIChpbXBsaWNpdCk8L2Rpdj4KLSAgICBleGlzdHM6IHRydWUK
LSAgICBsaXZlUmVnaW9uQXRvbWljOiB0cnVlCi0gICAgbGl2ZVJlZ2lvblJlbGV2YW50OiBhZGRp
dGlvbnMscmVtb3ZhbHMsdGV4dAotICAgIGxpdmVSZWdpb25TdGF0dXM6IGFzc2VydGl2ZQotCi08
ZGl2IHJvbGU9ImFsZXJ0IiBhcmlhLXJlbGV2YW50PSJhbGwiPnJlbGV2YW50OiBhbGwgKGV4cGxp
Y2l0KTwvZGl2PgotICAgIGV4aXN0czogdHJ1ZQotICAgIGxpdmVSZWdpb25BdG9taWM6IHRydWUK
LSAgICBsaXZlUmVnaW9uUmVsZXZhbnQ6IGFkZGl0aW9ucyxyZW1vdmFscyx0ZXh0Ci0gICAgbGl2
ZVJlZ2lvblN0YXR1czogYXNzZXJ0aXZlCi0KLTxkaXYgcm9sZT0iYWxlcnQiIGFyaWEtcmVsZXZh
bnQ9ImFkZGl0aW9ucyI+cmVsZXZhbnQ6IGFkZGl0aW9uczwvZGl2PgotICAgIGV4aXN0czogdHJ1
ZQotICAgIGxpdmVSZWdpb25BdG9taWM6IHRydWUKLSAgICBsaXZlUmVnaW9uUmVsZXZhbnQ6IGFk
ZGl0aW9ucwotICAgIGxpdmVSZWdpb25TdGF0dXM6IGFzc2VydGl2ZQotCi08ZGl2IHJvbGU9ImFs
ZXJ0IiBhcmlhLXJlbGV2YW50PSJ0ZXh0Ij5yZWxldmFudDogdGV4dDwvZGl2PgotICAgIGV4aXN0
czogdHJ1ZQotICAgIGxpdmVSZWdpb25BdG9taWM6IHRydWUKLSAgICBsaXZlUmVnaW9uUmVsZXZh
bnQ6IHRleHQKLSAgICBsaXZlUmVnaW9uU3RhdHVzOiBhc3NlcnRpdmUKLQotPGRpdiByb2xlPSJh
bGVydCIgYXJpYS1yZWxldmFudD0icmVtb3ZhbHMiPnJlbGV2YW50OiByZW1vdmFsczwvZGl2Pgot
ICAgIGV4aXN0czogdHJ1ZQotICAgIGxpdmVSZWdpb25BdG9taWM6IHRydWUKLSAgICBsaXZlUmVn
aW9uUmVsZXZhbnQ6IHJlbW92YWxzCi0gICAgbGl2ZVJlZ2lvblN0YXR1czogYXNzZXJ0aXZlCi0K
LTxkaXYgcm9sZT0iYWxlcnQiIGFyaWEtcmVsZXZhbnQ9InJlbW92YWxzIHRleHQiPnJlbGV2YW50
OiByZW1vdmFscyB0ZXh0PC9kaXY+Ci0gICAgZXhpc3RzOiB0cnVlCi0gICAgbGl2ZVJlZ2lvbkF0
b21pYzogdHJ1ZQotICAgIGxpdmVSZWdpb25SZWxldmFudDogcmVtb3ZhbHMsdGV4dAotICAgIGxp
dmVSZWdpb25TdGF0dXM6IGFzc2VydGl2ZQotCi08ZGl2IHJvbGU9ImFsZXJ0IiBhcmlhLXJlbGV2
YW50PSJhZGRpdGlvbnMgcmVtb3ZhbHMiPnJlbGV2YW50OiBhZGRpdGlvbnMgcmVtb3ZhbHM8L2Rp
dj4KLSAgICBleGlzdHM6IHRydWUKLSAgICBsaXZlUmVnaW9uQXRvbWljOiB0cnVlCi0gICAgbGl2
ZVJlZ2lvblJlbGV2YW50OiBhZGRpdGlvbnMscmVtb3ZhbHMKLSAgICBsaXZlUmVnaW9uU3RhdHVz
OiBhc3NlcnRpdmUKLQotPGRpdiByb2xlPSJhbGVydCIgYXJpYS1yZWxldmFudD0idGV4dCBhZGRp
dGlvbnMiPnJlbGV2YW50OiBhZGRpdGlvbnMgdGV4dCAob3JkZXIgc2hvdWxkIGJlIG5vcm1hbGl6
ZWQpPC9kaXY+Ci0gICAgZXhpc3RzOiB0cnVlCi0gICAgbGl2ZVJlZ2lvbkF0b21pYzogdHJ1ZQot
ICAgIGxpdmVSZWdpb25SZWxldmFudDogYWRkaXRpb25zLHRleHQKLSAgICBsaXZlUmVnaW9uU3Rh
dHVzOiBhc3NlcnRpdmUKLQotPGRpdiByb2xlPSJhbGVydCIgYXJpYS1yZWxldmFudD0iYWRkaXRp
b25zIHRleHQiPnJlbGV2YW50OiBhZGRpdGlvbnMgdGV4dCAoZXhwbGljaXQpPC9kaXY+Ci0gICAg
ZXhpc3RzOiB0cnVlCi0gICAgbGl2ZVJlZ2lvbkF0b21pYzogdHJ1ZQotICAgIGxpdmVSZWdpb25S
ZWxldmFudDogYWRkaXRpb25zLHRleHQKLSAgICBsaXZlUmVnaW9uU3RhdHVzOiBhc3NlcnRpdmUK
LQotPGRpdiByb2xlPSJhbGVydCI+cmVsZXZhbnQ6IGFkZGl0aW9ucyB0ZXh0IChpbXBsaWNpdCk8
L2Rpdj4KLSAgICBleGlzdHM6IHRydWUKLSAgICBsaXZlUmVnaW9uQXRvbWljOiB0cnVlCi0gICAg
bGl2ZVJlZ2lvblJlbGV2YW50OiBhZGRpdGlvbnMsdGV4dAotICAgIGxpdmVSZWdpb25TdGF0dXM6
IGFzc2VydGl2ZQotCi08ZGl2IHJvbGU9InRpbWVyIj5vZmYgKGRlZmF1bHQpPC9kaXY+Ci0gICAg
ZXhpc3RzOiB0cnVlCi0KLTxkaXYgcm9sZT0ic3RhdHVzIiBhcmlhLWxpdmU9Im9mZiI+b2ZmPC9k
aXY+Ci0gICAgZXhpc3RzOiB0cnVlCi0KLTxkaXYgcm9sZT0ic3RhdHVzIiBhcmlhLWxpdmU9ImFz
c2VydGl2ZSI+YXNzZXJ0aXZlPC9kaXY+Ci0gICAgZXhpc3RzOiB0cnVlCi0gICAgbGl2ZVJlZ2lv
bkF0b21pYzogdHJ1ZQotICAgIGxpdmVSZWdpb25SZWxldmFudDogYWRkaXRpb25zLHRleHQKLSAg
ICBsaXZlUmVnaW9uU3RhdHVzOiBhc3NlcnRpdmUKLQotPGRpdiByb2xlPSJzdGF0dXMiPnBvbGl0
ZSAoZGVmYXVsdCk8L2Rpdj4KLSAgICBleGlzdHM6IHRydWUKLSAgICBsaXZlUmVnaW9uQXRvbWlj
OiB0cnVlCi0gICAgbGl2ZVJlZ2lvblJlbGV2YW50OiBhZGRpdGlvbnMsdGV4dAotICAgIGxpdmVS
ZWdpb25TdGF0dXM6IHBvbGl0ZQotCi08ZGl2IHJvbGU9Im1hcnF1ZWUiPm9mZiAoZGVmYXVsdCk8
L2Rpdj4KLSAgICBleGlzdHM6IHRydWUKLQotPGRpdiByb2xlPSJsb2ciIGFyaWEtbGl2ZT0ib2Zm
Ij5vZmY8L2Rpdj4KLSAgICBleGlzdHM6IHRydWUKLQotPGRpdiByb2xlPSJsb2ciIGFyaWEtbGl2
ZT0iYXNzZXJ0aXZlIj5hc3NlcnRpdmU8L2Rpdj4KLSAgICBleGlzdHM6IHRydWUKLSAgICBsaXZl
UmVnaW9uQXRvbWljOiBmYWxzZQotICAgIGxpdmVSZWdpb25SZWxldmFudDogYWRkaXRpb25zLHRl
eHQKLSAgICBsaXZlUmVnaW9uU3RhdHVzOiBhc3NlcnRpdmUKLQotPGRpdiByb2xlPSJsb2ciPnBv
bGl0ZSAoZGVmYXVsdCk8L2Rpdj4KLSAgICBleGlzdHM6IHRydWUKLSAgICBsaXZlUmVnaW9uQXRv
bWljOiBmYWxzZQotICAgIGxpdmVSZWdpb25SZWxldmFudDogYWRkaXRpb25zLHRleHQKLSAgICBs
aXZlUmVnaW9uU3RhdHVzOiBwb2xpdGUKLQotPGRpdiByb2xlPSJhbGVydCIgYXJpYS1saXZlPSJw
b2xpdGUiPnBvbGl0ZTwvZGl2PgotICAgIGV4aXN0czogdHJ1ZQotICAgIGxpdmVSZWdpb25BdG9t
aWM6IHRydWUKLSAgICBsaXZlUmVnaW9uUmVsZXZhbnQ6IGFkZGl0aW9ucyx0ZXh0Ci0gICAgbGl2
ZVJlZ2lvblN0YXR1czogcG9saXRlCi0KLTxkaXYgcm9sZT0iYWxlcnQiIGFyaWEtbGl2ZT0ib2Zm
Ij5vZmY8L2Rpdj4KLSAgICBleGlzdHM6IHRydWUKLQotPGRpdiByb2xlPSJhbGVydCI+YXNzZXJ0
aXZlIChkZWZhdWx0KTwvZGl2PgotICAgIGV4aXN0czogdHJ1ZQotICAgIGxpdmVSZWdpb25BdG9t
aWM6IHRydWUKLSAgICBsaXZlUmVnaW9uUmVsZXZhbnQ6IGFkZGl0aW9ucyx0ZXh0Ci0gICAgbGl2
ZVJlZ2lvblN0YXR1czogYXNzZXJ0aXZlCi0KLTxkaXYgcm9sZT0iZ3JvdXAiIGFyaWEtbGl2ZT0i
YXNzZXJ0aXZlIiBhcmlhLWJ1c3k9InRydWUiIGFyaWEtYXRvbWljPSJmYWxzZSI+YXNzZXJ0aXZl
PC9kaXY+Ci0gICAgZXhpc3RzOiB0cnVlCi0gICAgYnVzeTogdHJ1ZQotICAgIGxpdmVSZWdpb25B
dG9taWM6IGZhbHNlCi0gICAgbGl2ZVJlZ2lvblJlbGV2YW50OiBhZGRpdGlvbnMsdGV4dAotICAg
IGxpdmVSZWdpb25TdGF0dXM6IGFzc2VydGl2ZQotCi08ZGl2IHJvbGU9Imdyb3VwIiBhcmlhLWxp
dmU9InBvbGl0ZSIgYXJpYS1idXN5PSJ0cnVlIiBhcmlhLWF0b21pYz0iZmFsc2UiPnBvbGl0ZTwv
ZGl2PgotICAgIGV4aXN0czogdHJ1ZQotICAgIGJ1c3k6IHRydWUKLSAgICBsaXZlUmVnaW9uQXRv
bWljOiBmYWxzZQotICAgIGxpdmVSZWdpb25SZWxldmFudDogYWRkaXRpb25zLHRleHQKLSAgICBs
aXZlUmVnaW9uU3RhdHVzOiBwb2xpdGUKLQotPGRpdiByb2xlPSJncm91cCIgYXJpYS1saXZlPSJv
ZmYiIGFyaWEtYnVzeT0idHJ1ZSIgYXJpYS1hdG9taWM9ImZhbHNlIj5vZmY8L2Rpdj4KLSAgICBl
eGlzdHM6IHRydWUKLSAgICBidXN5OiB0cnVlCi0KLTxkaXYgcm9sZT0iZ3JvdXAiIGFyaWEtbGl2
ZT0iYXNzZXJ0aXZlIiBhcmlhLWJ1c3k9InRydWUiIGFyaWEtYXRvbWljPSJ0cnVlIj5hc3NlcnRp
dmU8L2Rpdj4KLSAgICBleGlzdHM6IHRydWUKLSAgICBidXN5OiB0cnVlCi0gICAgbGl2ZVJlZ2lv
bkF0b21pYzogdHJ1ZQotICAgIGxpdmVSZWdpb25SZWxldmFudDogYWRkaXRpb25zLHRleHQKLSAg
ICBsaXZlUmVnaW9uU3RhdHVzOiBhc3NlcnRpdmUKLQotPGRpdiByb2xlPSJncm91cCIgYXJpYS1s
aXZlPSJwb2xpdGUiIGFyaWEtYnVzeT0idHJ1ZSIgYXJpYS1hdG9taWM9InRydWUiPnBvbGl0ZTwv
ZGl2PgotICAgIGV4aXN0czogdHJ1ZQotICAgIGJ1c3k6IHRydWUKLSAgICBsaXZlUmVnaW9uQXRv
bWljOiB0cnVlCi0gICAgbGl2ZVJlZ2lvblJlbGV2YW50OiBhZGRpdGlvbnMsdGV4dAotICAgIGxp
dmVSZWdpb25TdGF0dXM6IHBvbGl0ZQotCi08ZGl2IHJvbGU9Imdyb3VwIiBhcmlhLWxpdmU9Im9m
ZiIgYXJpYS1idXN5PSJ0cnVlIiBhcmlhLWF0b21pYz0idHJ1ZSI+b2ZmPC9kaXY+Ci0gICAgZXhp
c3RzOiB0cnVlCi0gICAgYnVzeTogdHJ1ZQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvZG9tL2dldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZV9saXZl
UmVnaW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tL2dldEFjY2Vz
c2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZV9saXZlUmVnaW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDVjMWEyNjA1NjlhYjBiODc3M2U0OWY0Mjg2Y2JlNGQwODc0YzFkYjIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS9nZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllc0Zvck5v
ZGVfbGl2ZVJlZ2lvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTI4ICswLDAgQEAKLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keSBvbkxvYWQ9InJ1blRlc3QoKSI+Ci0KLTxwPkNoZWNraW5nIFdlYiBJbnNw
ZWN0b3IgcHJvdG9jb2wgKHNwZWNpZmljYWxseSBsaXZlIHJlZ2lvbiBwcm9wZXJ0aWVzKSBmb3Ig
dGhlIEFjY2Vzc2liaWxpdHkgTm9kZSBJbnNwZWN0b3IuPC9wPgotCi08ZGl2IGlkPSJleGFtcGxl
cyI+Ci0KLQk8ZGl2IGNsYXNzPSJleCIgcm9sZT0iZ3JvdXAiIGFyaWEtbGl2ZT0ib2ZmIiBhcmlh
LWJ1c3k9InRydWUiIGFyaWEtYXRvbWljPSJ0cnVlIj5vZmY8L2Rpdj4KLSAgICA8ZGl2IGNsYXNz
PSJleCIgcm9sZT0iZ3JvdXAiIGFyaWEtbGl2ZT0icG9saXRlIiBhcmlhLWJ1c3k9InRydWUiIGFy
aWEtYXRvbWljPSJ0cnVlIj5wb2xpdGU8L2Rpdj4KLSAgICA8ZGl2IGNsYXNzPSJleCIgcm9sZT0i
Z3JvdXAiIGFyaWEtbGl2ZT0iYXNzZXJ0aXZlIiBhcmlhLWJ1c3k9InRydWUiIGFyaWEtYXRvbWlj
PSJ0cnVlIj5hc3NlcnRpdmU8L2Rpdj4KLSAgICA8ZGl2IGNsYXNzPSJleCIgcm9sZT0iZ3JvdXAi
IGFyaWEtbGl2ZT0ib2ZmIiBhcmlhLWJ1c3k9InRydWUiIGFyaWEtYXRvbWljPSJmYWxzZSI+b2Zm
PC9kaXY+Ci0gICAgPGRpdiBjbGFzcz0iZXgiIHJvbGU9Imdyb3VwIiBhcmlhLWxpdmU9InBvbGl0
ZSIgYXJpYS1idXN5PSJ0cnVlIiBhcmlhLWF0b21pYz0iZmFsc2UiPnBvbGl0ZTwvZGl2PgotICAg
IDxkaXYgY2xhc3M9ImV4IiByb2xlPSJncm91cCIgYXJpYS1saXZlPSJhc3NlcnRpdmUiIGFyaWEt
YnVzeT0idHJ1ZSIgYXJpYS1hdG9taWM9ImZhbHNlIj5hc3NlcnRpdmU8L2Rpdj4KLSAgICAKLSAg
ICA8ZGl2IGNsYXNzPSJleCIgcm9sZT0iYWxlcnQiPmFzc2VydGl2ZSAoZGVmYXVsdCk8L2Rpdj4K
LQk8ZGl2IGNsYXNzPSJleCIgcm9sZT0iYWxlcnQiIGFyaWEtbGl2ZT0ib2ZmIj5vZmY8L2Rpdj4K
LQk8ZGl2IGNsYXNzPSJleCIgcm9sZT0iYWxlcnQiIGFyaWEtbGl2ZT0icG9saXRlIj5wb2xpdGU8
L2Rpdj4KLQk8ZGl2IGNsYXNzPSJleCIgcm9sZT0ibG9nIj5wb2xpdGUgKGRlZmF1bHQpPC9kaXY+
Ci0JPGRpdiBjbGFzcz0iZXgiIHJvbGU9ImxvZyIgYXJpYS1saXZlPSJhc3NlcnRpdmUiPmFzc2Vy
dGl2ZTwvZGl2PgotCTxkaXYgY2xhc3M9ImV4IiByb2xlPSJsb2ciIGFyaWEtbGl2ZT0ib2ZmIj5v
ZmY8L2Rpdj4KLQk8ZGl2IGNsYXNzPSJleCIgcm9sZT0ibWFycXVlZSI+b2ZmIChkZWZhdWx0KTwv
ZGl2PgotCTxkaXYgY2xhc3M9ImV4IiByb2xlPSJzdGF0dXMiPnBvbGl0ZSAoZGVmYXVsdCk8L2Rp
dj4KLQk8ZGl2IGNsYXNzPSJleCIgcm9sZT0ic3RhdHVzIiBhcmlhLWxpdmU9ImFzc2VydGl2ZSI+
YXNzZXJ0aXZlPC9kaXY+Ci0JPGRpdiBjbGFzcz0iZXgiIHJvbGU9InN0YXR1cyIgYXJpYS1saXZl
PSJvZmYiPm9mZjwvZGl2PgotCTxkaXYgY2xhc3M9ImV4IiByb2xlPSJ0aW1lciI+b2ZmIChkZWZh
dWx0KTwvZGl2PgotCi0gICAgPGRpdiBjbGFzcz0iZXgiIHJvbGU9ImFsZXJ0Ij5yZWxldmFudDog
YWRkaXRpb25zIHRleHQgKGltcGxpY2l0KTwvZGl2PgotICAgIDxkaXYgY2xhc3M9ImV4IiByb2xl
PSJhbGVydCIgYXJpYS1yZWxldmFudD0iYWRkaXRpb25zIHRleHQiPnJlbGV2YW50OiBhZGRpdGlv
bnMgdGV4dCAoZXhwbGljaXQpPC9kaXY+Ci0gICAgPGRpdiBjbGFzcz0iZXgiIHJvbGU9ImFsZXJ0
IiBhcmlhLXJlbGV2YW50PSJ0ZXh0IGFkZGl0aW9ucyI+cmVsZXZhbnQ6IGFkZGl0aW9ucyB0ZXh0
IChvcmRlciBzaG91bGQgYmUgbm9ybWFsaXplZCk8L2Rpdj4KLSAgICA8ZGl2IGNsYXNzPSJleCIg
cm9sZT0iYWxlcnQiIGFyaWEtcmVsZXZhbnQ9ImFkZGl0aW9ucyByZW1vdmFscyI+cmVsZXZhbnQ6
IGFkZGl0aW9ucyByZW1vdmFsczwvZGl2PgotICAgIDxkaXYgY2xhc3M9ImV4IiByb2xlPSJhbGVy
dCIgYXJpYS1yZWxldmFudD0icmVtb3ZhbHMgdGV4dCI+cmVsZXZhbnQ6IHJlbW92YWxzIHRleHQ8
L2Rpdj4KLSAgICA8ZGl2IGNsYXNzPSJleCIgcm9sZT0iYWxlcnQiIGFyaWEtcmVsZXZhbnQ9InJl
bW92YWxzIj5yZWxldmFudDogcmVtb3ZhbHM8L2Rpdj4KLSAgICA8ZGl2IGNsYXNzPSJleCIgcm9s
ZT0iYWxlcnQiIGFyaWEtcmVsZXZhbnQ9InRleHQiPnJlbGV2YW50OiB0ZXh0PC9kaXY+Ci0gICAg
PGRpdiBjbGFzcz0iZXgiIHJvbGU9ImFsZXJ0IiBhcmlhLXJlbGV2YW50PSJhZGRpdGlvbnMiPnJl
bGV2YW50OiBhZGRpdGlvbnM8L2Rpdj4KLSAgICA8ZGl2IGNsYXNzPSJleCIgcm9sZT0iYWxlcnQi
IGFyaWEtcmVsZXZhbnQ9ImFsbCI+cmVsZXZhbnQ6IGFsbCAoZXhwbGljaXQpPC9kaXY+Ci0gICAg
PGRpdiBjbGFzcz0iZXgiIHJvbGU9ImFsZXJ0IiBhcmlhLXJlbGV2YW50PSJhZGRpdGlvbnMgcmVt
b3ZhbHMgdGV4dCI+cmVsZXZhbnQ6IGFsbCAoaW1wbGljaXQpPC9kaXY+Ci0gICAgPGRpdiBjbGFz
cz0iZXgiIHJvbGU9ImFsZXJ0IiBhcmlhLXJlbGV2YW50PSJ0ZXh0IGFkZGl0aW9ucyByZW1vdmFs
cyI+cmVsZXZhbnQ6IGFsbCAoaW1wbGljaXQpPC9kaXY+Ci0gICAgPGRpdiBjbGFzcz0iZXgiIHJv
bGU9ImFsZXJ0IiBhcmlhLXJlbGV2YW50PSJ0ZXh0IHJlbW92YWxzIGFkZGl0aW9ucyI+cmVsZXZh
bnQ6IGFsbCAoaW1wbGljaXQpPC9kaXY+Ci0gICAgPGRpdiBjbGFzcz0iZXgiIHJvbGU9ImFsZXJ0
IiBhcmlhLXJlbGV2YW50PSJhZGRpdGlvbnMgcmVtb3ZhbHMgcmVtb3ZhbHMiPnJlbGV2YW50OiBh
ZGRpdGlvbnMgcmVtb3ZhbHMgKGR1cGxpY2F0ZSk8L2Rpdj4KLSAgICA8ZGl2IGNsYXNzPSJleCIg
cm9sZT0iYWxlcnQiIGFyaWEtcmVsZXZhbnQ9InRleHQgdGV4dCI+cmVsZXZhbnQ6IHRleHQgKGR1
cGxpY2F0ZSk8L2Rpdj4KLQotPC9kaXY+Ci0KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KLQotZnVuY3Rpb24gJChpZCkgewotICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChpZCk7Ci19Ci0KLWZ1bmN0aW9uIGNsZWFudXAoKSB7Ci0gICAgLy8gSGlkZSB0aGUgdGVzdCBl
bGVtZW50IGNvbnRhaW5lciB0byBhdm9pZCBpcnJlbGV2YW50IG91dHB1dCBkaWZmcyBvbiBzdWJz
ZXF1ZW50IHVwZGF0ZXMuCi0gICAgJCgiZXhhbXBsZXMiKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUi
OwotfQotCi1mdW5jdGlvbiB0ZXN0KCkgewotCi0gICAgdmFyIGV4YW1wbGVzID0gW107Ci0gICAg
dmFyIGRvY3VtZW50Tm9kZUlkID0gbnVsbDsKLSAgICB2YXIgYm9keU5vZGVJZCA9IG51bGw7Ci0K
LSAgICBmdW5jdGlvbiBvbkdvdERvY3VtZW50KHJlc3BvbnNlKSB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZSk7Ci0gICAgICAgIGRvY3VtZW50Tm9kZUlkID0g
cmVzcG9uc2UucmVzdWx0LnJvb3Qubm9kZUlkOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRD
b21tYW5kKCJET00ucXVlcnlTZWxlY3RvckFsbCIsIHsibm9kZUlkIjogZG9jdW1lbnROb2RlSWQs
ICJzZWxlY3RvciI6ICIuZXgifSwgb25Hb3RRdWVyeVNlbGVjdG9yQWxsKTsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBvbkdvdFF1ZXJ5U2VsZWN0b3JBbGwocmVzcG9uc2UpIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKHJlc3BvbnNlKTsKLSAgICAgICAgZXhhbXBsZXMgPSBy
ZXNwb25zZS5yZXN1bHQubm9kZUlkczsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlRvdGFs
IGVsZW1lbnRzIHRvIGJlIHRlc3RlZDogIiArIGV4YW1wbGVzLmxlbmd0aCArICIuIik7Ci0gICAg
ICAgIGxvb3AoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBsb29wKCkgewotICAgICAgICBpZiAo
ZXhhbXBsZXMubGVuZ3RoKSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJET00uZ2V0T3V0ZXJIVE1MIiwgeyJub2RlSWQiOiBleGFtcGxlc1tleGFtcGxlcy5sZW5ndGgt
MV19LCBvbkdvdE91dGVySFRNTCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBmaW5p
c2hUZXN0KCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBvbkdvdE91dGVySFRN
TChyZXNwb25zZSkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVzcG9u
c2UpOwotICAgICAgICB2YXIgb3V0ZXJIVE1MID0gcmVzcG9uc2UucmVzdWx0Lm91dGVySFRNTDsK
LSAgICAgICAgb3V0ZXJIVE1MID0gb3V0ZXJIVE1MLnJlcGxhY2UoLyBjbGFzcz0iZXgiL2csICIi
KTsgLy8gcmVtb3ZlIGFueSBkdXBsaWNhdGVkLCB1bm5lY2Vzc2FyeSBjbGFzcyBhdHRyaWJ1dGVz
Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJcbiIgKyBvdXRlckhUTUwpOwotICAgICAgICBJ
bnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJET00uZ2V0QWNjZXNzaWJpbGl0eVByb3BlcnRpZXNG
b3JOb2RlIiwgeyJub2RlSWQiOiBleGFtcGxlc1tleGFtcGxlcy5sZW5ndGgtMV19LCBvbkdvdEFj
Y2Vzc2liaWxpdHlQcm9wZXJ0aWVzKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBvbkdvdEFjY2Vz
c2liaWxpdHlQcm9wZXJ0aWVzKHJlc3BvbnNlKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY2hl
Y2tGb3JFcnJvcihyZXNwb25zZSk7Ci0gICAgICAgIGxvZ0FjY2Vzc2liaWxpdHlQcm9wZXJ0aWVz
KHJlc3BvbnNlLnJlc3VsdC5wcm9wZXJ0aWVzKTsKLSAgICAgICAgZXhhbXBsZXMucG9wKCk7Ci0g
ICAgICAgIGxvb3AoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBsb2dBY2Nlc3NpYmlsaXR5UHJv
cGVydGllcyhwcm9wZXJ0aWVzKSB7Ci0gICAgICAgIGZvciAodmFyIGtleSBpbiBwcm9wZXJ0aWVz
KSB7Ci0gICAgICAgICAgICB2YXIgdmFsdWUgPSBwcm9wZXJ0aWVzW2tleV07Ci0gICAgICAgICAg
ICBzd2l0Y2ggKGtleSl7Ci0gICAgICAgICAgICBjYXNlICJidXN5IjoKLSAgICAgICAgICAgIGNh
c2UgImV4aXN0cyI6Ci0gICAgICAgICAgICBjYXNlICJsaXZlUmVnaW9uQXRvbWljIjoKLSAgICAg
ICAgICAgIGNhc2UgImxpdmVSZWdpb25SZWxldmFudCI6Ci0gICAgICAgICAgICBjYXNlICJsaXZl
UmVnaW9uU3RhdHVzIjoKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiICAgICIg
KyBrZXkgKyAiOiAiICsgdmFsdWUpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7Ci0gICAgICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ImV4cHJlc3Npb24i
OiAiY2xlYW51cCgpIn0sIGZ1bmN0aW9uKCl7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCgpOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JUZXN0LnNl
bmRDb21tYW5kKCJET00uZ2V0RG9jdW1lbnQiLCB7fSwgb25Hb3REb2N1bWVudCk7Ci0KLX0KLTwv
c2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20vZ2V0QWNjZXNzaWJp
bGl0eVByb3BlcnRpZXNGb3JOb2RlX21vdXNlRXZlbnROb2RlSWQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS9nZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGll
c0Zvck5vZGVfbW91c2VFdmVudE5vZGVJZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDFlMTU4ZWY4ZjM1MzBiMzI1NzU2MTE1MjM1ZjgzOGFmZjQ0NjIyYmMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RvbS9nZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllc0Zvck5vZGVf
bW91c2VFdmVudE5vZGVJZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCww
IEBACi1DaGVja2luZyBXZWIgSW5zcGVjdG9yIHByb3RvY29sIChzcGVjaWZpY2FsbHkgbW91c2VF
dmVudE5vZGVJZCkgZm9yIHRoZSBBY2Nlc3NpYmlsaXR5IE5vZGUgSW5zcGVjdG9yLgotCi1Ub3Rh
bCBlbGVtZW50cyB0byBiZSB0ZXN0ZWQ6IDIxLgotCi08ZGl2PkRPTTIgbW91c2V1cCBvbiBwYXJl
bnQgZGl2LjwvZGl2PgotICAgIG1vdXNlRXZlbnROb2RlSWQ6IGFuY2VzdG9yIGVsZW1lbnQKLQot
PGRpdj5ET00yIG1vdXNlZG93biBvbiBwYXJlbnQgZGl2LjwvZGl2PgotICAgIG1vdXNlRXZlbnRO
b2RlSWQ6IGFuY2VzdG9yIGVsZW1lbnQKLQotPGRpdj5ET00yIGNsaWNrIG9uIHBhcmVudCBkaXYu
PC9kaXY+Ci0gICAgbW91c2VFdmVudE5vZGVJZDogYW5jZXN0b3IgZWxlbWVudAotCi08ZGl2IGlk
PSJkb20ybW91c2V1cCI+bW91c2V1cDwvZGl2PgotICAgIG1vdXNlRXZlbnROb2RlSWQ6IHNlbGYK
LQotPGRpdiBpZD0iZG9tMm1vdXNlZG93biI+bW91c2Vkb3duPC9kaXY+Ci0gICAgbW91c2VFdmVu
dE5vZGVJZDogc2VsZgotCi08ZGl2IGlkPSJkb20yY2xpY2siPmNsaWNrPC9kaXY+Ci0gICAgbW91
c2VFdmVudE5vZGVJZDogc2VsZgotCi08ZGl2PkRPTTEgbW91c2V1cCBvbiBwYXJlbnQgZGl2PC9k
aXY+Ci0gICAgbW91c2VFdmVudE5vZGVJZDogYW5jZXN0b3IgZWxlbWVudAotCi08ZGl2PkRPTTEg
bW91c2Vkb3duIG9uIHBhcmVudCBkaXYuPC9kaXY+Ci0gICAgbW91c2VFdmVudE5vZGVJZDogYW5j
ZXN0b3IgZWxlbWVudAotCi08ZGl2PkRPTTEgY2xpY2sgb24gcGFyZW50IGRpdi48L2Rpdj4KLSAg
ICBtb3VzZUV2ZW50Tm9kZUlkOiBhbmNlc3RvciBlbGVtZW50Ci0KLTxkaXYgaWQ9ImRvbTFtb3Vz
ZXVwIj5tb3VzZXVwPC9kaXY+Ci0gICAgbW91c2VFdmVudE5vZGVJZDogc2VsZgotCi08ZGl2IGlk
PSJkb20xbW91c2Vkb3duIj5tb3VzZWRvd248L2Rpdj4KLSAgICBtb3VzZUV2ZW50Tm9kZUlkOiBz
ZWxmCi0KLTxkaXYgaWQ9ImRvbTFjbGljayI+Y2xpY2s8L2Rpdj4KLSAgICBtb3VzZUV2ZW50Tm9k
ZUlkOiBzZWxmCi0KLTxzcGFuIHJvbGU9ImltZyI+RE9NMSBpbmxpbmUgY2xpY2sgb24gcGFyZW50
IHNwYW4uPC9zcGFuPgotICAgIG1vdXNlRXZlbnROb2RlSWQ6IGFuY2VzdG9yIGVsZW1lbnQKLQot
PGRpdj5ET00xIGlubGluZSBjbGljayBvbiBwYXJlbnQgZGl2IHdpdGggdGFiaW5kZXg9IjAiLjwv
ZGl2PgotICAgIG1vdXNlRXZlbnROb2RlSWQ6IGFuY2VzdG9yIGVsZW1lbnQKLQotPGRpdj5ET00x
IGlubGluZSBjbGljayBvbiBwYXJlbnQgZGl2IHdpdGggcm9sZT0iYnV0dG9uIi48L2Rpdj4KLSAg
ICBtb3VzZUV2ZW50Tm9kZUlkOiBhbmNlc3RvciBlbGVtZW50Ci0KLTxkaXY+RE9NMSBpbmxpbmUg
Y2xpY2sgb24gcGFyZW50IGRpdi48L2Rpdj4KLSAgICBtb3VzZUV2ZW50Tm9kZUlkOiBhbmNlc3Rv
ciBlbGVtZW50Ci0KLTxzcGFuIG9uY2xpY2s9InZvaWQoMCk7Ij5jbGljazwvc3Bhbj4KLSAgICBt
b3VzZUV2ZW50Tm9kZUlkOiBzZWxmCi0KLTxkaXYgdGFiaW5kZXg9IjAiIG9uY2xpY2s9InZvaWQo
MCk7Ij5jbGljazwvZGl2PgotICAgIG1vdXNlRXZlbnROb2RlSWQ6IHNlbGYKLQotPGRpdiByb2xl
PSJidXR0b24iIG9uY2xpY2s9InZvaWQoMCk7Ij5jbGljazwvZGl2PgotICAgIG1vdXNlRXZlbnRO
b2RlSWQ6IHNlbGYKLQotPGRpdiBvbmNsaWNrPSJ2b2lkKDApOyI+Y2xpY2s8L2Rpdj4KLSAgICBt
b3VzZUV2ZW50Tm9kZUlkOiBzZWxmCi0KLTxkaXY+Q2xpY2sgaGFuZGxlciBvbiBib2R5IGRlbGVn
YXRlLjwvZGl2PgotICAgIG1vdXNlRXZlbnROb2RlSWQ6IGJvZHkgZWxlbWVudAotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tL2dldEFjY2Vzc2liaWxpdHlQ
cm9wZXJ0aWVzRm9yTm9kZV9tb3VzZUV2ZW50Tm9kZUlkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvZG9tL2dldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZV9tb3Vz
ZUV2ZW50Tm9kZUlkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiYjVhYjg2
MjQxN2MyYWJmYTE0MTRhYTc2N2MxM2NhOWJjZWU3NTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rv
bS9nZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllc0Zvck5vZGVfbW91c2VFdmVudE5vZGVJZC5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMTQ5ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbkxv
YWQ9InJ1blRlc3QoKSIgb25jbGljaz0idm9pZCgwKTsiPgotCi08cD5DaGVja2luZyBXZWIgSW5z
cGVjdG9yIHByb3RvY29sIChzcGVjaWZpY2FsbHkgbW91c2VFdmVudE5vZGVJZCkgZm9yIHRoZSBB
Y2Nlc3NpYmlsaXR5IE5vZGUgSW5zcGVjdG9yLjwvcD4KLQotPGRpdiBpZD0iZXhhbXBsZXMiPgot
Ci0gICAgPGRpdiBjbGFzcz0iZXgiPkNsaWNrIGhhbmRsZXIgb24gYm9keSBkZWxlZ2F0ZS48L2Rp
dj4KLQotICAgIDwhLS0gSW5saW5lIGV2ZW50IGhhbmRsZXJzIGZvciBtb3VzZUV2ZW50Tm9kZUlk
IHRlc3QuIC0tPgotICAgIDxkaXYgY2xhc3M9ImV4IiBvbmNsaWNrPSJ2b2lkKDApOyI+Y2xpY2s8
L2Rpdj4KLSAgICA8ZGl2IGNsYXNzPSJleCIgcm9sZT0iYnV0dG9uIiBvbmNsaWNrPSJ2b2lkKDAp
OyI+Y2xpY2s8L2Rpdj4KLSAgICA8ZGl2IGNsYXNzPSJleCIgdGFiaW5kZXg9IjAiIG9uY2xpY2s9
InZvaWQoMCk7Ij5jbGljazwvZGl2PgotICAgIDxzcGFuIGNsYXNzPSJleCIgb25jbGljaz0idm9p
ZCgwKTsiPmNsaWNrPC9zcGFuPgotICAgIDxkaXYgb25jbGljaz0idm9pZCgwKTsiPjxkaXYgY2xh
c3M9ImV4Ij5ET00xIGlubGluZSBjbGljayBvbiBwYXJlbnQgZGl2LjwvZGl2PjwvZGl2PgotICAg
IDxkaXYgcm9sZT0iYnV0dG9uIiBvbmNsaWNrPSJ2b2lkKDApOyI+PGRpdiBjbGFzcz0iZXgiPkRP
TTEgaW5saW5lIGNsaWNrIG9uIHBhcmVudCBkaXYgd2l0aCByb2xlPSJidXR0b24iLjwvZGl2Pjwv
ZGl2PgotICAgIDxkaXYgdGFiaW5kZXg9IjAiIG9uY2xpY2s9InZvaWQoMCk7Ij48ZGl2IGNsYXNz
PSJleCI+RE9NMSBpbmxpbmUgY2xpY2sgb24gcGFyZW50IGRpdiB3aXRoIHRhYmluZGV4PSIwIi48
L2Rpdj48L2Rpdj4KLSAgICA8c3BhbiBvbmNsaWNrPSJ2b2lkKDApOyI+PHNwYW4gcm9sZT0iaW1n
IiBjbGFzcz0iZXgiPkRPTTEgaW5saW5lIGNsaWNrIG9uIHBhcmVudCBzcGFuLjwvc3Bhbj48L3Nw
YW4+Ci0KLSAgICA8IS0tIERPTSBMZXZlbCAxIGV2ZW50cyBhc3NpZ25lZCBiZWxvdyBmb3IgbW91
c2VFdmVudE5vZGVJZCB0ZXN0LiAtLT4KLSAgICA8ZGl2IGNsYXNzPSJleCIgaWQ9ImRvbTFjbGlj
ayI+Y2xpY2s8L2Rpdj4KLSAgICA8ZGl2IGNsYXNzPSJleCIgaWQ9ImRvbTFtb3VzZWRvd24iPm1v
dXNlZG93bjwvZGl2PgotICAgIDxkaXYgY2xhc3M9ImV4IiBpZD0iZG9tMW1vdXNldXAiPm1vdXNl
dXA8L2Rpdj4KLSAgICA8ZGl2IGlkPSJkb20xY2xpY2twYXJlbnQiPjxkaXYgY2xhc3M9ImV4Ij5E
T00xIGNsaWNrIG9uIHBhcmVudCBkaXYuPC9kaXY+PC9kaXY+Ci0gICAgPGRpdiBpZD0iZG9tMW1v
dXNlZG93bnBhcmVudCI+PGRpdiBjbGFzcz0iZXgiPkRPTTEgbW91c2Vkb3duIG9uIHBhcmVudCBk
aXYuPC9kaXY+PC9kaXY+Ci0gICAgPGRpdiBpZD0iZG9tMW1vdXNldXBwYXJlbnQiPjxkaXYgY2xh
c3M9ImV4Ij5ET00xIG1vdXNldXAgb24gcGFyZW50IGRpdjwvZGl2PjwvZGl2PgotCi0gICAgPCEt
LSBET00gTGV2ZWwgMiBldmVudHMgYXNzaWduZWQgYmVsb3cgZm9yIG1vdXNlRXZlbnROb2RlSWQg
dGVzdC4gLS0+Ci0gICAgPGRpdiBjbGFzcz0iZXgiIGlkPSJkb20yY2xpY2siPmNsaWNrPC9kaXY+
Ci0gICAgPGRpdiBjbGFzcz0iZXgiIGlkPSJkb20ybW91c2Vkb3duIj5tb3VzZWRvd248L2Rpdj4K
LSAgICA8ZGl2IGNsYXNzPSJleCIgaWQ9ImRvbTJtb3VzZXVwIj5tb3VzZXVwPC9kaXY+Ci0gICAg
PGRpdiBpZD0iZG9tMmNsaWNrcGFyZW50Ij48ZGl2IGNsYXNzPSJleCI+RE9NMiBjbGljayBvbiBw
YXJlbnQgZGl2LjwvZGl2PjwvZGl2PgotICAgIDxkaXYgaWQ9ImRvbTJtb3VzZWRvd25wYXJlbnQi
PjxkaXYgY2xhc3M9ImV4Ij5ET00yIG1vdXNlZG93biBvbiBwYXJlbnQgZGl2LjwvZGl2PjwvZGl2
PgotICAgIDxkaXYgaWQ9ImRvbTJtb3VzZXVwcGFyZW50Ij48ZGl2IGNsYXNzPSJleCI+RE9NMiBt
b3VzZXVwIG9uIHBhcmVudCBkaXYuPC9kaXY+PC9kaXY+Ci0KLTwvZGl2PgotCi08c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+Ci0KLWZ1bmN0aW9uICQoaWQpIHsKLSAgICByZXR1cm4gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwotfQotCi1mdW5jdGlvbiB2b2lkSGFuZGxlcigpIHsK
LSAgICB2b2lkKDApOwotfQotCi0vLyBET00gTGV2ZWwgMSBldmVudHMuCi0kKCJkb20xY2xpY2si
KS5vbmNsaWNrID0gdm9pZEhhbmRsZXI7Ci0kKCJkb20xbW91c2Vkb3duIikub25tb3VzZWRvd24g
PSB2b2lkSGFuZGxlcjsKLSQoImRvbTFtb3VzZXVwIikub25tb3VzZXVwID0gdm9pZEhhbmRsZXI7
Ci0kKCJkb20xY2xpY2twYXJlbnQiKS5vbmNsaWNrID0gdm9pZEhhbmRsZXI7Ci0kKCJkb20xbW91
c2Vkb3ducGFyZW50Iikub25tb3VzZWRvd24gPSB2b2lkSGFuZGxlcjsKLSQoImRvbTFtb3VzZXVw
cGFyZW50Iikub25tb3VzZXVwID0gdm9pZEhhbmRsZXI7Ci0KLS8vIERPTSBMZXZlbCAyIGV2ZW50
cy4KLSQoImRvbTJjbGljayIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgdm9pZEhhbmRsZXIp
OwotJCgiZG9tMm1vdXNlZG93biIpLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHZvaWRI
YW5kbGVyKTsKLSQoImRvbTJtb3VzZXVwIikuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsIHZv
aWRIYW5kbGVyKTsKLSQoImRvbTJjbGlja3BhcmVudCIpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNr
Iiwgdm9pZEhhbmRsZXIpOwotJCgiZG9tMm1vdXNlZG93bnBhcmVudCIpLmFkZEV2ZW50TGlzdGVu
ZXIoIm1vdXNlZG93biIsIHZvaWRIYW5kbGVyKTsKLSQoImRvbTJtb3VzZXVwcGFyZW50IikuYWRk
RXZlbnRMaXN0ZW5lcigibW91c2V1cCIsIHZvaWRIYW5kbGVyKTsKLQotZnVuY3Rpb24gY2xlYW51
cCgpIHsKLSAgICAvLyBIaWRlIHRoZSB0ZXN0IGVsZW1lbnQgY29udGFpbmVyIHRvIGF2b2lkIGly
cmVsZXZhbnQgb3V0cHV0IGRpZmZzIG9uIHN1YnNlcXVlbnQgdXBkYXRlcy4KLSAgICAkKCJleGFt
cGxlcyIpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKSB7Ci0K
LSAgICB2YXIgZXhhbXBsZXMgPSBbXTsKLSAgICB2YXIgZG9jdW1lbnROb2RlSWQgPSBudWxsOwot
ICAgIHZhciBib2R5Tm9kZUlkID0gbnVsbDsKLQotICAgIGZ1bmN0aW9uIG9uR290RG9jdW1lbnQo
cmVzcG9uc2UpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKHJlc3BvbnNl
KTsKLSAgICAgICAgZG9jdW1lbnROb2RlSWQgPSByZXNwb25zZS5yZXN1bHQucm9vdC5ub2RlSWQ7
Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRPTS5xdWVyeVNlbGVjdG9yIiwg
eyJub2RlSWQiOiBkb2N1bWVudE5vZGVJZCwgInNlbGVjdG9yIjogImJvZHkifSwgb25Hb3RCb2R5
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBvbkdvdEJvZHkocmVzcG9uc2UpIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKHJlc3BvbnNlKTsKLSAgICAgICAgYm9keU5vZGVJ
ZCA9IHJlc3BvbnNlLnJlc3VsdC5ub2RlSWQ7Ci0gICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENv
bW1hbmQoIkRPTS5nZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllc0Zvck5vZGUiLCB7Im5vZGVJZCI6
IGJvZHlOb2RlSWR9LCBvbkdvdEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9yQm9keU5vZGUpOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIG9uR290QWNjZXNzaWJpbGl0eVByb3BlcnRpZXNGb3JCb2R5
Tm9kZShyZXNwb25zZSkgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVz
cG9uc2UpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJET00ucXVlcnlTZWxl
Y3RvckFsbCIsIHsibm9kZUlkIjogZG9jdW1lbnROb2RlSWQsICJzZWxlY3RvciI6ICIuZXgifSwg
b25Hb3RRdWVyeVNlbGVjdG9yQWxsKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBvbkdvdFF1ZXJ5
U2VsZWN0b3JBbGwocmVzcG9uc2UpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVy
cm9yKHJlc3BvbnNlKTsKLSAgICAgICAgZXhhbXBsZXMgPSByZXNwb25zZS5yZXN1bHQubm9kZUlk
czsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlRvdGFsIGVsZW1lbnRzIHRvIGJlIHRlc3Rl
ZDogIiArIGV4YW1wbGVzLmxlbmd0aCArICIuIik7Ci0gICAgICAgIGxvb3AoKTsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBsb29wKCkgewotICAgICAgICBpZiAoZXhhbXBsZXMubGVuZ3RoKSB7Ci0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJET00uZ2V0T3V0ZXJIVE1MIiwg
eyJub2RlSWQiOiBleGFtcGxlc1tleGFtcGxlcy5sZW5ndGgtMV19LCBvbkdvdE91dGVySFRNTCk7
Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBmaW5pc2hUZXN0KCk7Ci0gICAgICAgIH0K
LSAgICB9Ci0KLSAgICBmdW5jdGlvbiBvbkdvdE91dGVySFRNTChyZXNwb25zZSkgewotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVzcG9uc2UpOwotICAgICAgICB2YXIgb3V0
ZXJIVE1MID0gcmVzcG9uc2UucmVzdWx0Lm91dGVySFRNTDsKLSAgICAgICAgb3V0ZXJIVE1MID0g
b3V0ZXJIVE1MLnJlcGxhY2UoLyBjbGFzcz0iZXgiL2csICIiKTsgLy8gcmVtb3ZlIGFueSBkdXBs
aWNhdGVkLCB1bm5lY2Vzc2FyeSBjbGFzcyBhdHRyaWJ1dGVzCi0gICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCJcbiIgKyBvdXRlckhUTUwpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21t
YW5kKCJET00uZ2V0QWNjZXNzaWJpbGl0eVByb3BlcnRpZXNGb3JOb2RlIiwgeyJub2RlSWQiOiBl
eGFtcGxlc1tleGFtcGxlcy5sZW5ndGgtMV19LCBvbkdvdEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVz
KTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBvbkdvdEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzKHJl
c3BvbnNlKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZSk7
Ci0gICAgICAgIGxvZ0FjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzKHJlc3BvbnNlLnJlc3VsdC5wcm9w
ZXJ0aWVzKTsKLSAgICAgICAgZXhhbXBsZXMucG9wKCk7Ci0gICAgICAgIGxvb3AoKTsKLSAgICB9
Ci0KLSAgICBmdW5jdGlvbiBsb2dBY2Nlc3NpYmlsaXR5UHJvcGVydGllcyhwcm9wZXJ0aWVzKSB7
Ci0gICAgICAgIHZhciBtb3VzZUV2ZW50Tm9kZUlkID0gcHJvcGVydGllcy5tb3VzZUV2ZW50Tm9k
ZUlkOwotICAgICAgICBpZiAodHlwZW9mIG1vdXNlRXZlbnROb2RlSWQgPT09ICJudW1iZXIiKQot
ICAgICAgICAgICAgdmFyIG1zZyA9ICIgICAgbW91c2VFdmVudE5vZGVJZDogIjsKLSAgICAgICAg
ICAgIGlmIChtb3VzZUV2ZW50Tm9kZUlkID09PSBib2R5Tm9kZUlkKQotICAgICAgICAgICAgICAg
IG1zZyArPSAiYm9keSBlbGVtZW50IjsKLSAgICAgICAgICAgIGVsc2UgaWYgKG1vdXNlRXZlbnRO
b2RlSWQgPT09IHByb3BlcnRpZXMubm9kZUlkKQotICAgICAgICAgICAgICAgIG1zZyArPSAic2Vs
ZiI7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgbXNnICs9ICJhbmNlc3RvciBl
bGVtZW50IjsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKG1zZyk7Ci0gICAgfQotCi0g
ICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHsiZXhwcmVzc2lvbiI6ICJjbGVhbnVwKCkifSwgZnVu
Y3Rpb24oKXsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAg
ICAgIH0pOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRPTS5nZXRE
b2N1bWVudCIsIHt9LCBvbkdvdERvY3VtZW50KTsKLQotfQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS9oaWdobGlnaHQtZmxvdy13aXRoLW5vLXJlZ2lvbi1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tL2hpZ2hsaWdo
dC1mbG93LXdpdGgtbm8tcmVnaW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggOTBjYzZkZjI2MzIxMTM0ODliODQ5NTY1ZTM2MGJmOWZjODBiYzY4OC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvZG9tL2hpZ2hsaWdodC1mbG93LXdpdGgtbm8tcmVnaW9uLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLVRlc3RpbmcgdGhhdCB0aGUgYmFja2Vu
ZCBpcyBub3QgY3Jhc2hpbmcgd2hlbiBoaWdobGlnaHRpbmcgYSBub2RlIHRoYXQgaGFzIG5vIGFz
c29jaWF0ZWQgcmVnaW9uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2RvbS9oaWdobGlnaHQtZmxvdy13aXRoLW5vLXJlZ2lvbi5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yLXByb3RvY29sL2RvbS9oaWdobGlnaHQtZmxvdy13aXRoLW5vLXJlZ2lvbi5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMzA4ZjQzYWRjMGI2M2E4OTBjMDFjMWUy
NWI4YjRkODFlYzA2YmU1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20vaGlnaGxpZ2h0LWZsb3ct
d2l0aC1uby1yZWdpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08
c3R5bGU+Ci0jZmxvdyB7Ci0gICAgLXdlYmtpdC1mbG93LWludG86IGZsb3c7Ci19Ci08L3N0eWxl
PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3Quc2VuZENv
bW1hbmQoIkRPTS5nZXREb2N1bWVudCIsIHt9LCBvbkdvdERvY3VtZW50KTsKLQotICAgIGZ1bmN0
aW9uIG9uR290RG9jdW1lbnQobXNnKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JF
cnJvcihtc2cpOwotICAgICAgICB2YXIgbm9kZSA9IG1zZy5yZXN1bHQucm9vdDsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRE9NLnF1ZXJ5U2VsZWN0b3IiLCB7ICJub2RlSWQi
OiBub2RlLm5vZGVJZCwgInNlbGVjdG9yIjogIiNpbnNwZWN0ZWRFbGVtZW50IiB9LCBvblF1ZXJ5
U2VsZWN0b3IpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIG9uUXVlcnlTZWxlY3Rvcihtc2cpIHsK
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKG1zZyk7Ci0gICAgICAgIHZhciBu
b2RlID0gbXNnLnJlc3VsdDsKLSAgICAgICAgdmFyIGhpZ2hsaWdodENvbmZpZyA9IHsKLSAgICAg
ICAgICAgIHNob3dJbmZvOiB0cnVlLAotICAgICAgICAgICAgY29udGVudENvbG9yOiB7cjogMjU1
LCBnOiAyNTUsIGI6IDI1NX0sCi0gICAgICAgICAgICBwYWRkaW5nQ29sb3I6IHtyOiAyNTUsIGc6
IDI1NSwgYjogMjU1fSwKLSAgICAgICAgICAgIGJvcmRlckNvbG9yOiB7cjogMjU1LCBnOiAyNTUs
IGI6IDI1NX0sCi0gICAgICAgICAgICBtYXJnaW5Db2xvcjoge3I6IDI1NSwgZzogMjU1LCBiOiAy
NTV9LAotICAgICAgICB9OwotICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJET00u
aGlnaGxpZ2h0Tm9kZSIsIHsgImhpZ2hsaWdodENvbmZpZyI6IGhpZ2hsaWdodENvbmZpZywgIm5v
ZGVJZCI6IG5vZGUubm9kZUlkIH0sIG9uSGlnaGxpZ2h0Q29tcGxldGUpOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIG9uSGlnaGxpZ2h0Q29tcGxldGUobXNnKSB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QuY2hlY2tGb3JFcnJvcihtc2cpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgotCi08ZGl2IGlkPSJmbG93Ij4KLSAgICA8ZGl2IGlkPSJpbnNwZWN0ZWRFbGVtZW50Ij48
L2Rpdj4KLTwvZGl2PgotCi08cD5UZXN0aW5nIHRoYXQgdGhlIGJhY2tlbmQgaXMgbm90IGNyYXNo
aW5nIHdoZW4gaGlnaGxpZ2h0aW5nIGEgbm9kZSB0aGF0IGhhcyBubyBhc3NvY2lhdGVkIHJlZ2lv
bi48L3A+Ci0KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9kb20vcmVtb3ZlLW11bHRpcGxlLW5vZGVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20vcmVtb3ZlLW11bHRpcGxlLW5vZGVzLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmU5MTE4NGZmMjVhZDUz
ZjEyNjcyNWE1YjQ2OGI0NDhkNDQ1ODczNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tL3JlbW92
ZS1tdWx0aXBsZS1ub2Rlcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCww
IEBACi1UZXN0aW5nIHRoYXQgRE9NLmNoaWxkTm9kZVJlbW92ZWQgaXMgY29ycmVjdGx5IHRyaWdn
ZXJlZCB3aGVuIGFsbCB0aGUgcGFyZW50IGNoaWxkcmVuIG9mIGEgbm9kZSBhcmUgcmVtb3ZlZCBh
dCBvbmNlLgotCi1QYXJlbnQgY29udGFpbmVyIGlzIG5vdyBlbXB0eQotVGFyZ2V0IGVsZW1lbnQg
c2hvdWxkIGhhdmUgYmVlbiBtb3ZlZCBhZnRlciB0aGlzIGxpbmU6Ci1UYXJnZXQgZWxlbWVudAot
Ci1SZW1vdmluZyBub2RlIGRpdiN0YXJnZXRfZWxlbWVudAotSW5zZXJ0aW5nIG5vZGUgZGl2I3Rh
cmdldF9lbGVtZW50IGludG8gcCNmaW5hbF9jb250YWluZXIKLVJlbW92aW5nIG5vZGUgZGl2I2Jl
Zm9yZQotUmVtb3Zpbmcgbm9kZSBkaXYjYWZ0ZXIKLUluc2VydGluZyBub2RlIDx0ZXh0IG5vZGUg
IlBhcmVudCBjb250YWluZXIgaXMgbm93IGVtcHR5Ij4gaW50byBkaXYjcGFyZW50X2NvbnRhaW5l
cgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tL3JlbW92
ZS1tdWx0aXBsZS1ub2Rlcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2Rv
bS9yZW1vdmUtbXVsdGlwbGUtbm9kZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMTM4ZmZjYzA1ZGEyNzhhMDZlY2Y3MjJiYTEzZmFlZTZiNzQ3MjQ1MS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvZG9tL3JlbW92ZS1tdWx0aXBsZS1ub2Rlcy5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMTE0ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wt
dGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gbW92ZU5vZGUoKQotewotICAg
IHZhciB0YXJnZXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldF9lbGVt
ZW50Iik7Ci0gICAgdGFyZ2V0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Ob2RlUmVtb3Zl
ZCIsIGZ1bmN0aW9uKCkgewotICAgICAgICB0YXJnZXRFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVu
ZXIoIkRPTU5vZGVSZW1vdmVkIiwgYXJndW1lbnRzLmNhbGxlZSk7Ci0gICAgICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJmaW5hbF9jb250YWluZXIiKS5hcHBlbmRDaGlsZCh0aGlzKTsKLSAg
ICB9KTsKLSAgICAvLyBSZW1vdmUgYWxsIHRoZSBjaGlsZHJlbiBpbnNpZGUgcGFyZW50IGNvbnRh
aW5lciwgaW5jbHVkaW5nICIjdGFyZ2V0X2VsZW1lbnQiLgotICAgIHZhciBwYXJlbnRDb250YWlu
ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFyZW50X2NvbnRhaW5lciIpOwotICAgIHBh
cmVudENvbnRhaW5lci50ZXh0Q29udGVudCA9ICJQYXJlbnQgY29udGFpbmVyIGlzIG5vdyBlbXB0
eSI7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBub2Rlc0J5SWQgPSB7fTsKLQot
ICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJET00uc2V0Q2hpbGROb2RlcyJdID0gb25T
ZXRDaGlsZE5vZGVzOwotICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJET00uY2hpbGRO
b2RlUmVtb3ZlZCJdID0gb25DaGlsZE5vZGVSZW1vdmVkOwotICAgIEluc3BlY3RvclRlc3QuZXZl
bnRIYW5kbGVyWyJET00uY2hpbGROb2RlSW5zZXJ0ZWQiXSA9IG9uQ2hpbGROb2RlSW5zZXJ0ZWQ7
Ci0KLSAgICBmdW5jdGlvbiBjcmVhdGVOb2RlQXR0cmlidXRlc01hcChhdHRyaWJ1dGVzKQotICAg
IHsKLSAgICAgICAgdmFyIGF0dHJpYnV0ZXNNYXAgPSB7fTsKLSAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBhdHRyaWJ1dGVzLmxlbmd0aDsgaSArPSAyKQotICAgICAgICAgICAgYXR0cmlidXRl
c01hcFthdHRyaWJ1dGVzW2ldXSA9IGF0dHJpYnV0ZXNbaSArIDFdOwotICAgICAgICByZXR1cm4g
YXR0cmlidXRlc01hcDsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBjb2xsZWN0Tm9kZShub2RlKQot
ICAgIHsKLSAgICAgICAgaWYgKG5vZGUubm9kZVR5cGUgPT09IDEpCi0gICAgICAgICAgICBub2Rl
LmF0dHJpYnV0ZXMgPSBjcmVhdGVOb2RlQXR0cmlidXRlc01hcChub2RlLmF0dHJpYnV0ZXMpOwot
ICAgICAgICBpZiAobm9kZS5jaGlsZHJlbikKLSAgICAgICAgICAgIG5vZGUuY2hpbGRyZW4uZm9y
RWFjaChjb2xsZWN0Tm9kZSk7Ci0gICAgICAgIG5vZGVzQnlJZFtub2RlLm5vZGVJZF0gPSBub2Rl
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIG5vZGVUb1N0cmluZyhub2RlKQotICAgIHsKLSAgICAg
ICAgc3dpdGNoIChub2RlLm5vZGVUeXBlKSB7Ci0gICAgICAgIGNhc2UgMToKLSAgICAgICAgICAg
IHJldHVybiBub2RlLmxvY2FsTmFtZSArICIjIiArIG5vZGUuYXR0cmlidXRlcy5pZDsKLSAgICAg
ICAgY2FzZSAzOgotICAgICAgICAgICAgcmV0dXJuICI8dGV4dCBub2RlICIgKyBKU09OLnN0cmlu
Z2lmeShub2RlLm5vZGVWYWx1ZSkgKyAiPiI7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAg
ICByZXR1cm4gIjxub2RlVHlwZSAiICsgbm9kZS5ub2RlVHlwZSArICI+IjsKLSAgICAgICAgfQot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIGdldE5vZGVJZGVudGlmaWVyKG5vZGVJZCkKLSAgICB7Ci0g
ICAgICAgIGlmICghbm9kZUlkKQotICAgICAgICAgICAgcmV0dXJuICI8aW52YWxpZCBub2RlIGlk
PiI7Ci0gICAgICAgIHZhciBub2RlID0gbm9kZXNCeUlkW25vZGVJZF07Ci0gICAgICAgIHJldHVy
biBub2RlID8gbm9kZVRvU3RyaW5nKG5vZGUpIDogIjx1bmtub3duIG5vZGU+IjsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBvblNldENoaWxkTm9kZXMocmVzcG9uc2UpCi0gICAgewotICAgICAgICBy
ZXNwb25zZS5wYXJhbXMubm9kZXMuZm9yRWFjaChjb2xsZWN0Tm9kZSk7Ci0gICAgfQotCi0gICAg
ZnVuY3Rpb24gb25DaGlsZE5vZGVSZW1vdmVkKHJlc3BvbnNlKQotICAgIHsKLSAgICAgICAgdmFy
IG5vZGVJZCA9IHJlc3BvbnNlLnBhcmFtcy5ub2RlSWQ7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJSZW1vdmluZyBub2RlICIgKyBnZXROb2RlSWRlbnRpZmllcihub2RlSWQpKTsKLSAgICAg
ICAgZGVsZXRlIG5vZGVzQnlJZFtub2RlSWRdOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIG9uQ2hp
bGROb2RlSW5zZXJ0ZWQocmVzcG9uc2UpCi0gICAgewotICAgICAgICBjb2xsZWN0Tm9kZShyZXNw
b25zZS5wYXJhbXMubm9kZSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJJbnNlcnRpbmcg
bm9kZSAiICsgZ2V0Tm9kZUlkZW50aWZpZXIocmVzcG9uc2UucGFyYW1zLm5vZGUubm9kZUlkKSAr
ICIgaW50byAiICsgZ2V0Tm9kZUlkZW50aWZpZXIocmVzcG9uc2UucGFyYW1zLnBhcmVudE5vZGVJ
ZCkpOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRPTS5nZXREb2N1
bWVudCIsIHt9LCBvbkdvdERvY3VtZW50KTsKLQotICAgIGZ1bmN0aW9uIG9uR290RG9jdW1lbnQo
bXNnKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKG1zZyk7Ci0g
ICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRPTS5xdWVyeVNlbGVjdG9yQWxsIiwg
eyJub2RlSWQiOiBtc2cucmVzdWx0LnJvb3Qubm9kZUlkLCAic2VsZWN0b3IiOiAiI3BhcmVudF9j
b250YWluZXIsI2ZpbmFsX2NvbnRhaW5lciJ9LCBvblF1ZXJ5U2VsZWN0b3JBbGwpOwotICAgIH0K
LQotICAgIGZ1bmN0aW9uIG9uUXVlcnlTZWxlY3RvckFsbChyZXNwb25zZSkKLSAgICB7Ci0gICAg
ICAgIC8vIE1ha2Ugc3VyZSB3ZSByZWNlaXZlIHRoZSBjaGlsZHJlbiBvZiB0aGUgIiNmaW5hbF9j
b250YWluZXIiIGFzIHRoZXkgYXJlIGFkZGVkLgotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHJlc3BvbnNlLnJlc3VsdC5ub2RlSWRzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5zZW5kQ29tbWFuZCgiRE9NLnJlcXVlc3RDaGlsZE5vZGVzIiwge25vZGVJZDogcmVz
cG9uc2UucmVzdWx0Lm5vZGVJZHNbaV19KTsKLSAgICAgICAgCi0gICAgICAgIEluc3BlY3RvclRl
c3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ImV4cHJlc3Npb24iOiAibW92ZU5v
ZGUoKSJ9LCBmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7Ci0gICAgICAgIH0pOwotICAgIH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgotCi08cD5UZXN0aW5nIHRoYXQgRE9NLmNoaWxkTm9kZVJlbW92
ZWQgaXMgY29ycmVjdGx5IHRyaWdnZXJlZCB3aGVuIGFsbCB0aGUgcGFyZW50IGNoaWxkcmVuIG9m
IGEgbm9kZSBhcmUgcmVtb3ZlZCBhdCBvbmNlLjwvcD4KLQotPGRpdiBpZD0icGFyZW50X2NvbnRh
aW5lciI+Ci0gICAgPGRpdiBpZD0iYmVmb3JlIj5GQUlMOiBFbGVtZW50ICIjYmVmb3JlIiBzaG91
bGQgYmUgcmVtb3ZlZDwvZGl2PgotICAgIDxkaXYgaWQ9InRhcmdldF9lbGVtZW50Ij5UYXJnZXQg
ZWxlbWVudDwvZGl2PgotICAgIDxkaXYgaWQ9ImFmdGVyIj5GQUlMOiBFbGVtZW50ICIjYWZ0ZXIi
IHNob3VsZCBiZSByZW1vdmVkPC9kaXY+Ci08L2Rpdj4KLQotPHAgaWQ9ImZpbmFsX2NvbnRhaW5l
ciI+VGFyZ2V0IGVsZW1lbnQgc2hvdWxkIGhhdmUgYmVlbiBtb3ZlZCBhZnRlciB0aGlzIGxpbmU6
PC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvZG9tL3JlcXVlc3QtY2hpbGQtbm9kZXMtZGVwdGgtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS9yZXF1ZXN0LWNoaWxkLW5vZGVzLWRl
cHRoLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzk0NDYzMGNj
MGE1YWUwODIzOWJjZjdhMjNmZWM1MjMyNjkwMWQwOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9t
L3JlcXVlc3QtY2hpbGQtbm9kZXMtZGVwdGgtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMjUgKzAsMCBAQAotCi09PT0gR2V0IHRoZSBEb2N1bWVudCA9PT0KLQotCi09PT0gR2V0IGlt
bWVkaWF0ZSBjaGlsZHJlbiBvZiB0aGUgYm9keSA9PT0KLQotUEFTUzogRmlyc3QgY2hpbGQgaXMg
YSBkaXYKLVBBU1M6IEZpcnN0IGNoaWxkIGlzIGRpdiNkZXB0aC0xCi1QQVNTOiBGaXJzdCBjaGls
ZCBoYXMgb25lIGNoaWxkCi1QQVNTOiBGaXJzdCBjaGlsZCBoYXMgbm8gLmNoaWxkcmVuIHByb3Bl
cnR5Ci0KLT09PSBHZXQgY2hpbGRyZW4gb2YgZGl2I2RlcHRoLTEgdGhyZWUgbGV2ZWxzIGRlZXAg
PT09Ci0KLVBBU1M6IGRpdiNkZXB0aC0xIGhhcyBub2RlcyAzIGxldmVscyBkZWVwCi0KLT09PSBH
ZXQgYWxsIGNoaWxkcmVuIG9mIGJvZHkgPT09Ci0KLVBBU1M6IGRpdiNkZXB0aC0xIGhhcyBub2Rl
cyA5IGxldmVscyBkZWVwCi0KLT09PSBQYXNzIGFuIGludmFsaWQgZGVwdGggPT09Ci0KLUJhY2tl
bmQgZXJyb3I6IFBsZWFzZSBwcm92aWRlIGEgcG9zaXRpdmUgaW50ZWdlciBhcyBhIGRlcHRoIG9y
IC0xIGZvciBlbnRpcmUgc3VidHJlZSAoLTMyMDAwKQotCi1QQVNTOiBFeHBlY3RlZCBudW1iZXIg
b2Ygc2V0Q2hpbGROb2RlcyBldmVudHMKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2RvbS9yZXF1ZXN0LWNoaWxkLW5vZGVzLWRlcHRoLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tL3JlcXVlc3QtY2hpbGQtbm9kZXMtZGVwdGguaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWVmOWQ5OTBkZGI4MzVjOWE2MDE5YTI2
NGQ1ZjczNWI5ZWJiMTc2YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tL3JlcXVlc3QtY2hpbGQt
bm9kZXMtZGVwdGguaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE2MiArMCwwIEBACi08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgotPHNj
cmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBmaXJzdERpdjsKLSAgICB2YXIgZXZl
bnRzQ291bnQgPSAwOwotCi0gICAgZ2V0RG9jdW1lbnQoKTsKLQotICAgIEluc3BlY3RvclRlc3Qu
ZXZlbnRIYW5kbGVyWyJET00uc2V0Q2hpbGROb2RlcyJdID0gZnVuY3Rpb24gc2V0Q2hpbGROb2Rl
cyhtZXNzYWdlT2JqZWN0KQotICAgIHsKLSAgICAgICAgZXZlbnRzQ291bnQrKzsKLQotICAgICAg
ICBpZiAoZXZlbnRzQ291bnQgPT09IDEpCi0gICAgICAgICAgICBnb3RJbW1lZGlhdGVDaGlsZHJl
bihtZXNzYWdlT2JqZWN0KTsKLSAgICAgICAgZWxzZSBpZiAoZXZlbnRzQ291bnQgPT09IDIpCi0g
ICAgICAgICAgICBnb3RBZGRpdGlvbmFsQ2hpbGRyZW4obWVzc2FnZU9iamVjdCk7Ci0gICAgICAg
IGVsc2UgaWYgKGV2ZW50c0NvdW50ID09PSAzKQotICAgICAgICAgICAgZ290QWxsQ2hpbGRyZW4o
bWVzc2FnZU9iamVjdCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKEpTT04uc3RyaW5naWZ5KG1lc3NhZ2VPYmplY3QsIG51bGwsICIgICAgIikpOwotICAgIH07
Ci0KLSAgICBmdW5jdGlvbiBnZXREb2N1bWVudCgpCi0gICAgewotICAgICAgICAvLyBXZSBtdXN0
IGZpcnN0IGdldCB0aGUgZG9jdW1lbnQgc28gdGhhdCBsYXRlciBvbiB3ZSBtYXkgZ2V0IHNlbnNp
YmxlIG5vZGVJZHMuCi0gICAgICAgIHN0ZXAoewotICAgICAgICAgICAgbmFtZTogIkdldCB0aGUg
RG9jdW1lbnQiLAotICAgICAgICAgICAgY29tbWFuZDogIkRPTS5nZXREb2N1bWVudCIsCi0gICAg
ICAgICAgICBwYXJhbWV0ZXJzOiB7fSwKLSAgICAgICAgICAgIGNhbGxiYWNrOiBnZXRJbW1lZGlh
dGVDaGlsZHJlbgotICAgICAgICB9KTsKLSAgICB9OwotCi0gICAgZnVuY3Rpb24gZ2V0SW1tZWRp
YXRlQ2hpbGRyZW4ocmVzdWx0KQotICAgIHsKLSAgICAgICAgdmFyIGJvZHlJZCA9IHJlc3VsdC5y
b290LmNoaWxkcmVuWzBdLmNoaWxkcmVuWzFdLm5vZGVJZDsKLSAgICAgICAgc3RlcCh7Ci0gICAg
ICAgICAgICBuYW1lOiAiR2V0IGltbWVkaWF0ZSBjaGlsZHJlbiBvZiB0aGUgYm9keSIsCi0gICAg
ICAgICAgICBjb21tYW5kOiAiRE9NLnJlcXVlc3RDaGlsZE5vZGVzIiwKLSAgICAgICAgICAgIHBh
cmFtZXRlcnM6IHsibm9kZUlkIjogYm9keUlkfQotICAgICAgICB9KTsKLSAgICB9OwotCi0gICAg
ZnVuY3Rpb24gZ290SW1tZWRpYXRlQ2hpbGRyZW4obWVzc2FnZU9iamVjdCkKLSAgICB7Ci0gICAg
ICAgIGZpcnN0RGl2ID0gbWVzc2FnZU9iamVjdC5wYXJhbXMubm9kZXNbMF07Ci0gICAgICAgIGFz
c2VydCgiRmlyc3QgY2hpbGQgaXMgYSBkaXYiLCBmaXJzdERpdi5sb2NhbE5hbWUsICJkaXYiKTsK
LSAgICAgICAgYXNzZXJ0KCJGaXJzdCBjaGlsZCBpcyBkaXYjZGVwdGgtMSIsIGZpcnN0RGl2LmF0
dHJpYnV0ZXNbMV0sICJkZXB0aC0xIik7Ci0gICAgICAgIGFzc2VydCgiRmlyc3QgY2hpbGQgaGFz
IG9uZSBjaGlsZCIsIGZpcnN0RGl2LmNoaWxkTm9kZUNvdW50LCAxKTsKLSAgICAgICAgYXNzZXJ0
KCJGaXJzdCBjaGlsZCBoYXMgbm8gLmNoaWxkcmVuIHByb3BlcnR5IiwgZmlyc3REaXYuY2hpbGRy
ZW4sIHVuZGVmaW5lZCk7Ci0KLSAgICAgICAgc3RlcCh7Ci0gICAgICAgICAgICBuYW1lOiAiR2V0
IGNoaWxkcmVuIG9mIGRpdiNkZXB0aC0xIHRocmVlIGxldmVscyBkZWVwIiwKLSAgICAgICAgICAg
IGNvbW1hbmQ6ICJET00ucmVxdWVzdENoaWxkTm9kZXMiLAotICAgICAgICAgICAgcGFyYW1ldGVy
czogeyJub2RlSWQiOiBmaXJzdERpdi5ub2RlSWQsICJkZXB0aCI6IDN9Ci0gICAgICAgIH0pOwot
ICAgIH07Ci0KLSAgICBmdW5jdGlvbiBnb3RBZGRpdGlvbmFsQ2hpbGRyZW4obWVzc2FnZU9iamVj
dCkKLSAgICB7Ci0gICAgICAgIHZhciBkZXB0aCA9IDE7Ci0gICAgICAgIHZhciBmaXJzdENoaWxk
ID0gbWVzc2FnZU9iamVjdC5wYXJhbXMubm9kZXNbMF07Ci0gICAgICAgIHZhciBub2RlID0gZmly
c3RDaGlsZDsKLSAgICAgICAgd2hpbGUgKG5vZGUgJiYgbm9kZS5jaGlsZHJlbikgewotICAgICAg
ICAgICAgZGVwdGgrKzsKLSAgICAgICAgICAgIG5vZGUgPSBub2RlLmNoaWxkcmVuWzBdOwotICAg
ICAgICB9Ci0KLSAgICAgICAgYXNzZXJ0KCJkaXYjZGVwdGgtMSBoYXMgbm9kZXMgMyBsZXZlbHMg
ZGVlcCIsIGRlcHRoLCAzKTsKLQotICAgICAgICBzdGVwKHsKLSAgICAgICAgICAgIG5hbWU6ICJH
ZXQgYWxsIGNoaWxkcmVuIG9mIGJvZHkiLAotICAgICAgICAgICAgY29tbWFuZDogIkRPTS5yZXF1
ZXN0Q2hpbGROb2RlcyIsCi0gICAgICAgICAgICBwYXJhbWV0ZXJzOiB7Im5vZGVJZCI6IGZpcnN0
RGl2Lm5vZGVJZCwgImRlcHRoIjogLTF9Ci0gICAgICAgIH0pOwotICAgIH07Ci0KLSAgICBmdW5j
dGlvbiBnb3RBbGxDaGlsZHJlbihtZXNzYWdlT2JqZWN0KQotICAgIHsKLSAgICAgICAgdmFyIGRl
cHRoID0gMTsKLSAgICAgICAgdmFyIGZpcnN0Q2hpbGQgPSBtZXNzYWdlT2JqZWN0LnBhcmFtcy5u
b2Rlc1swXTsKLSAgICAgICAgdmFyIG5vZGUgPSBmaXJzdENoaWxkOwotICAgICAgICB3aGlsZSAo
bm9kZSAmJiBub2RlLmNoaWxkcmVuKSB7Ci0gICAgICAgICAgICBkZXB0aCsrOwotICAgICAgICAg
ICAgbm9kZSA9IG5vZGUuY2hpbGRyZW5bMF07Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBXZSBo
YXZlIHJlcXVlc3RlZCBub2RlcyAzLWxldmVsIGRlZXAgc28gZmFyLCBzbwotICAgICAgICAvLyB3
ZSBzaG91bGQgaGF2ZSBnb3R0ZW4gYW4gYWRkaXRpb25hbCA2IGxldmVscyBvZiBkZXB0aC4KLSAg
ICAgICAgYXNzZXJ0KCJkaXYjZGVwdGgtMSBoYXMgbm9kZXMgOSBsZXZlbHMgZGVlcCIsIGRlcHRo
LCA2KTsKLQotICAgICAgICBzdGVwKHsKLSAgICAgICAgICAgIG5hbWU6ICJQYXNzIGFuIGludmFs
aWQgZGVwdGgiLAotICAgICAgICAgICAgY29tbWFuZDogIkRPTS5yZXF1ZXN0Q2hpbGROb2RlcyIs
Ci0gICAgICAgICAgICBwYXJhbWV0ZXJzOiB7Im5vZGVJZCI6IGZpcnN0RGl2Lm5vZGVJZCwgImRl
cHRoIjogMH0sCi0gICAgICAgICAgICBjYWxsYmFjazogZmluaXNoVGVzdAotICAgICAgICB9KTsK
LSAgICB9OwotCi0gICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpCi0gICAgewotICAgICAgICBhc3Nl
cnQoIkV4cGVjdGVkIG51bWJlciBvZiBzZXRDaGlsZE5vZGVzIGV2ZW50cyIsIGV2ZW50c0NvdW50
LCAzKTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH07Ci0K
LSAgICBmdW5jdGlvbiBzdGVwKHRlc3QpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiXG49PT0gIiArIHRlc3QubmFtZSArICIgPT09XG4iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5zZW5kQ29tbWFuZCh0ZXN0LmNvbW1hbmQsIHRlc3QucGFyYW1ldGVycywgZnVuY3Rpb24obWVz
c2FnZU9iamVjdCkgewotICAgICAgICAgICAgaWYgKG1lc3NhZ2VPYmplY3QuaGFzT3duUHJvcGVy
dHkoImVycm9yIikpCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJhY2tlbmQg
ZXJyb3I6ICIgKyBtZXNzYWdlT2JqZWN0LmVycm9yLm1lc3NhZ2UgKyAiICgiICsgbWVzc2FnZU9i
amVjdC5lcnJvci5jb2RlICsgIilcbiIpOwotCi0gICAgICAgICAgICBpZiAodGVzdC5jYWxsYmFj
aykKLSAgICAgICAgICAgICAgICB0ZXN0LmNhbGxiYWNrKG1lc3NhZ2VPYmplY3QucmVzdWx0KTsK
LSAgICAgICAgfSk7Ci0gICAgfTsKLQotICAgIGZ1bmN0aW9uIGFzc2VydChtZXNzYWdlLCBhY3R1
YWwsIGV4cGVjdGVkKQotICAgIHsKLSAgICAgICAgaWYgKGFjdHVhbCA9PT0gZXhwZWN0ZWQpCi0g
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogIiArIG1lc3NhZ2UpOwotICAgICAg
ICBlbHNlIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiAiICsgbWVzc2Fn
ZSArICIsIGV4cGVjdGVkIFwiIiArIGV4cGVjdGVkICsgIlwiIGJ1dCBnb3QgXCIiICsgYWN0dWFs
ICsgIlwiIik7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAg
ICAgICB9Ci0gICAgfTsKLX07Ci0KLXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50
TG9hZGVkIiwgZnVuY3Rpb24oKSB7Ci0gICAgcnVuVGVzdCgpOwotfSwgZmFsc2UpOwotPC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLQotPGRpdiBpZD0iZGVwdGgtMSI+Ci0gICAgPGRpdiBpZD0i
ZGVwdGgtMiI+Ci0gICAgICAgIDxkaXYgaWQ9ImRlcHRoLTMiPgotICAgICAgICAgICAgPGRpdiBp
ZD0iZGVwdGgtNCI+Ci0gICAgICAgICAgICAgICAgPGRpdiBpZD0iZGVwdGgtNSI+Ci0gICAgICAg
ICAgICAgICAgICAgIDxkaXYgaWQ9ImRlcHRoLTYiPgotICAgICAgICAgICAgICAgICAgICAgICAg
PGRpdiBpZD0iZGVwdGgtNyI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0i
ZGVwdGgtOCI+Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9ImRlcHRo
LTkiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iZGVwdGgt
MTAiPgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDwvZGl2PgotICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+Ci0gICAgICAgICAgICAg
ICAgICAgIDwvZGl2PgotICAgICAgICAgICAgICAgIDwvZGl2PgotICAgICAgICAgICAgPC9kaXY+
Ci0gICAgICAgIDwvZGl2PgotICAgIDwvZGl2PgotPC9kaXY+Ci0KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20vcmVzb3VyY2Vz
L2RvbS1zZWFyY2gtY3Jhc2gtaWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvZG9tL3Jlc291cmNlcy9kb20tc2VhcmNoLWNyYXNoLWlmcmFtZS5odG1sCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzM2Y3MWRlMWUzZjE0ZTgyMWQ2ZjRlZGQ5MDEwOTUxY2Fh
ZWNlNDVmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20vcmVzb3VyY2VzL2RvbS1zZWFyY2gtY3Jh
c2gtaWZyYW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLTxzY3JpcHQ+Ci1k
b2N1bWVudC5kb2N1bWVudEVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChkb2N1bWVudC5k
b2N1bWVudEVsZW1lbnQpOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvZG9tL3Jlc291cmNlcy9kb20tc2VhcmNoLWlmcmFtZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2RvbS9yZXNvdXJjZXMvZG9tLXNlYXJjaC1pZnJh
bWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmIwM2M3NjQ0YWEzOTM5ZmZi
ZjFjZGU3MmY0M2ZkMGY3YTdlNmNmYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tL3Jlc291cmNl
cy9kb20tc2VhcmNoLWlmcmFtZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOSArMCwwIEBACi08
aHRtbCBjbGFzcz0iaW5zaWRlLWlmcmFtZSI+Ci0gICAgPGhlYWQgY2xhc3M9Imluc2lkZS1pZnJh
bWUiPgotICAgIDwvaGVhZD4KLSAgICA8Ym9keSBjbGFzcz0iaW5zaWRlLWlmcmFtZSI+Ci0gICAg
ICAgIDxkaXYgY2xhc3M9ImJhc2UxIGluc2lkZS1pZnJhbWUiPgotICAgICAgICAgICAgPHAgY2xh
c3M9Imluc2lkZS1pZnJhbWUiPjwvcD4KLSAgICAgICAgPC9kaXY+Ci0gICAgPC9ib2R5PgotPC9o
dG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9kb20vcmVzb3VyY2VzL2RvbS1zZWFyY2gtcXVlcmllcy5qcyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9kb20vcmVzb3VyY2VzL2RvbS1zZWFyY2gt
cXVlcmllcy5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGU2NTJlNTk3ZWFiZTUy
NWRhMzk0MDgwNGFmNGIxZTJhZGUyM2UxMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvZG9tL3Jlc291
cmNlcy9kb20tc2VhcmNoLXF1ZXJpZXMuanMKKysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBA
Ci0vLyBIYXZpbmcgdGhlIHF1ZXJpZXMgaW4gYW4gZXh0ZXJuYWwgZmlsZSwgc28gdGhhdCBET00g
c2VhcmNoIHdpbGwgbm90IGZpbmQgdGhlIHNjcmlwdCB3aGVuIHNlYXJjaGluZyBmb3IgdmFsdWVz
LgotCi12YXIgZG9tU2VhcmNoUXVlcmllcyA9IFsKLSAgICAiYm9keSIsCi0gICAgIjxib2R5IiwK
LSAgICAiYm9keT4iLAotICAgICI8Ym9keT4iLAotICAgICI8Qk9EWT4iLAotCi0gICAgLy8gQXR0
cmlidXRlIG5hbWVzCi0gICAgIm9ubG9hZCIsCi0gICAgIk9OTE9BRCIsCi0KLSAgICAvLyBBdHRy
aWJ1dGUgdmFsdWVzCi0gICAgInJ1blRlc3QoKSIsCi0gICAgIlwicnVuVGVzdCgpIiwKLSAgICAi
XCJydW5UZXN0KClcIiIsCi0gICAgInJ1blRlc3QoKVwiIiwKLSAgICAiUlVOVEVTVCgpIiwKLSAg
ICAicnVudGVzdCgpIiwKLQotICAgIC8vIENTUyBzZWxlY3RvcnMKLSAgICAiLmJvZHktaW5zaWRl
LWlmcmFtZSIsCi0gICAgIioiLAotICAgICJCT0RZW09OTE9BRF0iLAotCi0gICAgLy8gWFBhdGgg
cXVlcnkKLSAgICAiL2h0bWwvYm9keSIsCi0gICAgIi9odG1sL2JvZHkvQG9ubG9hZCIsCi0gICAg
Ii9IVE1ML0JPRFkiCi1dOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9sYXllcnMvbGF5ZXJzLWFub255bW91cy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbGF5ZXJzL2xheWVy
cy1hbm9ueW1vdXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
ZDk1OTVlZGFlNGQ1ZDJmZDY5MGU0ZDg2OWUyYWJmNzU4ZTZlY2JlLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9sYXllcnMvbGF5ZXJzLWFub255bW91cy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwyOCArMCwwIEBACi1UaGlzIGlzIGEgdGVzdAotCi0KLT09PSBFbmFibGUgdGhlIExheWVy
VHJlZSBhZ2VudCA9PT0KLQotUEFTUwotCi09PT0gR2V0IHRoZSBEb2N1bWVudCA9PT0KLQotUEFT
UwotCi09PT0gR2V0IHRoZSBsYXllciB0cmVlID09PQotCi1QQVNTCi0KLT09PSBDaGVjayBsYXll
cnMgPT09Ci0KLVBBU1M6IEV4cGVjdGVkIG51bWJlciBvZiBhbm9ueW1vdXMgbGF5ZXJzLgotUEFT
UzogVGhlIHNvbGUgYW5vbnltb3VzIGxheWVyIGhhcyBhIG5vbi16ZXJvIG5vZGUgaWQuCi1QQVNT
OiBUaGUgc29sZSBhbm9ueW1vdXMgbGF5ZXIgaGFzIGEgOmZpcnN0LWxldHRlciBwc2V1ZG8tZWxl
bWVudC4KLQotPT09IENoZWNrIG5vZGUgPT09Ci0KLVBBU1M6IE5vZGUgd2FzIGZvdW5kLgotUEFT
UzogTm9kZSBoYXMgZXhwZWN0ZWQgbG9jYWxOYW1lLgotUEFTUzogTm9kZSBoYXMgaWQuCi1QQVNT
OiBOb2RlIGhhcyBleHBlY3RlZCBpZC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2xheWVycy9sYXllcnMtYW5vbnltb3VzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvbGF5ZXJzL2xheWVycy1hbm9ueW1vdXMuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZGMwOGI0MjljYTg1MGZhNmEyNzY5ZGE3NjcwNDIwZmZmYjM1
ZWZlYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbGF5ZXJzL2xheWVycy1hbm9ueW1vdXMuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDE0MCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVz
b3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiPgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLQotICAgIHZhciBub2RlczsKLSAKLSAg
ICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRE9NLnNldENoaWxkTm9kZXMiXSA9IHNldENo
aWxkTm9kZXM7Ci0KLSAgICBlbmFibGVMYXllclRyZWVBZ2VudCgpOwotICAgIAotICAgIGZ1bmN0
aW9uIGVuYWJsZUxheWVyVHJlZUFnZW50KHJlc3VsdCkKLSAgICB7Ci0gICAgICAgIHN0ZXAoewot
ICAgICAgICAgICAgbmFtZTogIkVuYWJsZSB0aGUgTGF5ZXJUcmVlIGFnZW50IiwKLSAgICAgICAg
ICAgIGNvbW1hbmQ6ICJMYXllclRyZWUuZW5hYmxlIiwKLSAgICAgICAgICAgIHBhcmFtZXRlcnM6
IHt9LAotICAgICAgICAgICAgY2FsbGJhY2s6IGdldERvY3VtZW50Ci0gICAgICAgIH0pOwotICAg
IH07Ci0KLSAgICBmdW5jdGlvbiBnZXREb2N1bWVudCgpCi0gICAgewotICAgICAgICAvLyBXZSBt
dXN0IGZpcnN0IGdldCB0aGUgZG9jdW1lbnQgc28gdGhhdCBsYXRlciBvbiB3ZSBtYXkgZ2V0IHNl
bnNpYmxlIG5vZGVJZHMuCi0gICAgICAgIHN0ZXAoewotICAgICAgICAgICAgbmFtZTogIkdldCB0
aGUgRG9jdW1lbnQiLAotICAgICAgICAgICAgY29tbWFuZDogIkRPTS5nZXREb2N1bWVudCIsCi0g
ICAgICAgICAgICBwYXJhbWV0ZXJzOiB7fSwKLSAgICAgICAgICAgIGNhbGxiYWNrOiBnZXRMYXll
clRyZWUKLSAgICAgICAgfSk7Ci0gICAgfTsKLQotICAgIGZ1bmN0aW9uIGdldExheWVyVHJlZShy
ZXN1bHQpCi0gICAgewotICAgICAgICBzdGVwKHsKLSAgICAgICAgICAgIG5hbWU6ICJHZXQgdGhl
IGxheWVyIHRyZWUiLAotICAgICAgICAgICAgY29tbWFuZDogIkxheWVyVHJlZS5sYXllcnNGb3JO
b2RlIiwKLSAgICAgICAgICAgIHBhcmFtZXRlcnM6IHsibm9kZUlkIjogcmVzdWx0LnJvb3Qubm9k
ZUlkfSwKLSAgICAgICAgICAgIGNhbGxiYWNrOiBnb3RMYXllclRyZWUKLSAgICAgICAgfSk7Ci0g
ICAgfTsKLQotICAgIGZ1bmN0aW9uIGdvdExheWVyVHJlZShyZXN1bHQpCi0gICAgewotICAgICAg
ICB2YXIgYW5vbnltb3VzTGF5ZXJzID0gcmVzdWx0LmxheWVycy5maWx0ZXIoZnVuY3Rpb24gKGxh
eWVyKSB7Ci0gICAgICAgICAgICByZXR1cm4gbGF5ZXIuaXNBbm9ueW1vdXM7Ci0gICAgICAgIH0p
OwotCi0gICAgICAgIGxvZ1Rlc3ROYW1lKCJDaGVjayBsYXllcnMiKTsKLQotICAgICAgICBhc3Nl
cnQoIkV4cGVjdGVkIG51bWJlciBvZiBhbm9ueW1vdXMgbGF5ZXJzIiwgYW5vbnltb3VzTGF5ZXJz
Lmxlbmd0aCwgMSk7Ci0gICAgICAgIGFzc2VydCgiVGhlIHNvbGUgYW5vbnltb3VzIGxheWVyIGhh
cyBhIG5vbi16ZXJvIG5vZGUgaWQiLCBhbm9ueW1vdXNMYXllcnNbMF0ubm9kZUlkICE9PSAwLCB0
cnVlKTsKLSAgICAgICAgYXNzZXJ0KCJUaGUgc29sZSBhbm9ueW1vdXMgbGF5ZXIgaGFzIGEgOmZp
cnN0LWxldHRlciBwc2V1ZG8tZWxlbWVudCIsIGFub255bW91c0xheWVyc1swXS5wc2V1ZG9FbGVt
ZW50ID09PSAiZmlyc3QtbGV0dGVyIiwgdHJ1ZSk7Ci0KLSAgICAgICAgdmFyIG5vZGU7Ci0gICAg
ICAgIHZhciBub2RlSWQgPSBhbm9ueW1vdXNMYXllcnNbMF0ubm9kZUlkOwotICAgICAgICBmb3Ig
KHZhciBpID0gMCwgY291bnQgPSBub2Rlcy5sZW5ndGg7IGkgPCBjb3VudDsgKytpKSB7Ci0gICAg
ICAgICAgICBpZiAobm9kZXNbaV0ubm9kZUlkID09PSBub2RlSWQpIHsKLSAgICAgICAgICAgICAg
ICBub2RlID0gbm9kZXNbaV07Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLQotICAgICAgICBsb2dUZXN0TmFtZSgiQ2hlY2sgbm9kZSIpOwotICAgICAg
ICAKLSAgICAgICAgYXNzZXJ0KCJOb2RlIHdhcyBmb3VuZCIsICEhbm9kZSwgdHJ1ZSk7Ci0gICAg
ICAgIGFzc2VydCgiTm9kZSBoYXMgZXhwZWN0ZWQgbG9jYWxOYW1lIiwgbm9kZS5sb2NhbE5hbWUs
ICJwIik7Ci0gICAgICAgIGFzc2VydCgiTm9kZSBoYXMgaWQiLCBub2RlLmF0dHJpYnV0ZXNbMF0s
ICJpZCIpOwotICAgICAgICBhc3NlcnQoIk5vZGUgaGFzIGV4cGVjdGVkIGlkIiwgbm9kZS5hdHRy
aWJ1dGVzWzFdLCAiZmlyc3QtbGV0dGVyIik7Ci0gICAgICAgIAotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH07Ci0KLSAgICBmdW5jdGlvbiBzZXRDaGlsZE5vZGVz
IChtZXNzYWdlT2JqZWN0KSB7Ci0gICAgICAgIG5vZGVzID0gbWVzc2FnZU9iamVjdC5wYXJhbXMu
bm9kZXM7Ci0gICAgfTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAodGVzdCkKLSAgICB7Ci0gICAgICAg
IGlmICh0ZXN0LmNhbGxiYWNrKQotICAgICAgICAgICAgbG9nVGVzdE5hbWUodGVzdC5uYW1lKTsK
LSAgICAgICAgcnVuQ29tbWFuZCh0ZXN0KTsKLSAgICB9OwotCi0gICAgZnVuY3Rpb24gbG9nVGVz
dE5hbWUobmFtZSkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJcbj09PSAiICsg
bmFtZSArICIgPT09XG4iKTsKLSAgICB9OwotCi0gICAgZnVuY3Rpb24gcnVuQ29tbWFuZChjb21t
YW5kKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZChjb21tYW5kLmNv
bW1hbmQsIGNvbW1hbmQucGFyYW1ldGVycywgZnVuY3Rpb24obWVzc2FnZU9iamVjdCkgewotICAg
ICAgICAgICAgaWYgKG1lc3NhZ2VPYmplY3QuaGFzT3duUHJvcGVydHkoImVycm9yIikpIHsKLSAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDogIiArIG1lc3NhZ2VPYmplY3Qu
ZXJyb3IubWVzc2FnZSArICIgKCIgKyBtZXNzYWdlT2JqZWN0LmVycm9yLmNvZGUgKyAiKSIpOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBpZiAoY29tbWFuZC5u
YW1lKQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTIik7Ci0KLSAgICAg
ICAgICAgIGlmIChjb21tYW5kLmNhbGxiYWNrKQotICAgICAgICAgICAgICAgIGNvbW1hbmQuY2Fs
bGJhY2sobWVzc2FnZU9iamVjdC5yZXN1bHQpOwotICAgICAgICB9KTsKLSAgICB9OwotCi0gICAg
ZnVuY3Rpb24gYXNzZXJ0KG5hbWUsIGFjdHVhbCwgZXhwZWN0ZWQpCi0gICAgewotICAgICAgICBp
ZiAoZXhwZWN0ZWQgPT09IGFjdHVhbCkKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQ
QVNTOiAiICsgbmFtZSArICIuIik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJGQUlMOiAiICsgbmFtZSArICIuIEV4cGVjdGVkICIgKyBleHBlY3RlZCArICIg
YnV0IGdvdCAiICsgYWN0dWFsKTsKLSAgICB9OwotCi19OwotCi13aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uKCkKLXsKLSAgICBydW5UZXN0KCk7Ci19
LCBmYWxzZSk7Ci0KLTwvc2NyaXB0PgotPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLQotICAgICNm
aXJzdC1sZXR0ZXI6OmZpcnN0LWxldHRlciB7Ci0gICAgICAgIGZsb2F0OiBsZWZ0OwotICAgICAg
ICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsKLSAgICB9Ci0KLTwvc3R5bGU+Ci08
L2hlYWQ+Ci08Ym9keT4KLQotICAgIDxwIGlkPSJmaXJzdC1sZXR0ZXIiPlRoaXMgaXMgYSB0ZXN0
PC9wPgotCi08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvbGF5ZXJzL2xheWVycy1ibGVuZGluZy1jb21wb3NpdGluZy1yZWFzb25zLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9sYXllcnMvbGF5ZXJz
LWJsZW5kaW5nLWNvbXBvc2l0aW5nLXJlYXNvbnMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxZTg3NTg1NTFkMDBhNDBkZmQ0NmI0NGMzNzliYzllMjA2YTgwZjk5
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9sYXllcnMvbGF5ZXJzLWJsZW5kaW5nLWNvbXBvc2l0aW5n
LXJlYXNvbnMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotCi09
PT0gRW5hYmxlIHRoZSBMYXllclRyZWUgYWdlbnQgPT09Ci0KLVBBU1MKLQotPT09IEdldCB0aGUg
RG9jdW1lbnQgPT09Ci0KLVBBU1MKLQotPT09IEdldCB0aGUgbGF5ZXIgdHJlZSA9PT0KLQotUEFT
UwotCi09PT0gQ2hlY2sgbGF5ZXJzJyByZWFzb25zIGZvciBjb21wb3NpdGluZyA9PT0KLQotUEFT
UzogPGRpdiBpZD0iaXNvbGF0aW5nIj4gaXMgY29tcG9zaXRpb24gZHVlIHRvIGlzb2xhdGluZyBj
b21wb3NpdGluZyBkZXNjZW5kYW50cyBoYXZpbmcgQ1NTIGJsZW5kaW5nIGFwcGxpZWQuCi1QQVNT
OiA8ZGl2IGlkPSJibGVuZGluZyI+IGlzIGNvbXBvc2l0ZWQgZHVlIGhhdmluZyBDU1MgYmxlbmRp
bmcgYXBwbGllZCBhbmQgY29tcG9zaXRlZCBkZXNjZW5kYW50cy4KLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2xheWVycy9sYXllcnMtYmxlbmRpbmctY29tcG9z
aXRpbmctcmVhc29ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2xheWVy
cy9sYXllcnMtYmxlbmRpbmctY29tcG9zaXRpbmctcmVhc29ucy5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwOTQwYjkyN2I3MmQ1OTJiNmY0Y2NjZmYyMTQ0NmQ0MGJlZDU2ZDRl
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9sYXllcnMvbGF5ZXJzLWJsZW5kaW5nLWNvbXBvc2l0aW5n
LXJlYXNvbnMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE2MyArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLQotICAgIHZh
ciBub2RlcyA9IFtdOwotIAotICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJET00uc2V0
Q2hpbGROb2RlcyJdID0gc2V0Q2hpbGROb2RlczsKLQotICAgIGVuYWJsZUxheWVyVHJlZUFnZW50
KCk7Ci0gICAgCi0gICAgZnVuY3Rpb24gZW5hYmxlTGF5ZXJUcmVlQWdlbnQocmVzdWx0KQotICAg
IHsKLSAgICAgICAgc3RlcCh7Ci0gICAgICAgICAgICBuYW1lOiAiRW5hYmxlIHRoZSBMYXllclRy
ZWUgYWdlbnQiLAotICAgICAgICAgICAgY29tbWFuZDogIkxheWVyVHJlZS5lbmFibGUiLAotICAg
ICAgICAgICAgcGFyYW1ldGVyczoge30sCi0gICAgICAgICAgICBjYWxsYmFjazogZ2V0RG9jdW1l
bnQKLSAgICAgICAgfSk7Ci0gICAgfTsKLQotICAgIGZ1bmN0aW9uIGdldERvY3VtZW50KCkKLSAg
ICB7Ci0gICAgICAgIC8vIFdlIG11c3QgZmlyc3QgZ2V0IHRoZSBkb2N1bWVudCBzbyB0aGF0IGxh
dGVyIG9uIHdlIG1heSBnZXQgc2Vuc2libGUgbm9kZUlkcy4KLSAgICAgICAgc3RlcCh7Ci0gICAg
ICAgICAgICBuYW1lOiAiR2V0IHRoZSBEb2N1bWVudCIsCi0gICAgICAgICAgICBjb21tYW5kOiAi
RE9NLmdldERvY3VtZW50IiwKLSAgICAgICAgICAgIHBhcmFtZXRlcnM6IHt9LAotICAgICAgICAg
ICAgY2FsbGJhY2s6IGdldExheWVyVHJlZQotICAgICAgICB9KTsKLSAgICB9OwotCi0gICAgZnVu
Y3Rpb24gZ2V0TGF5ZXJUcmVlKHJlc3VsdCkKLSAgICB7Ci0gICAgICAgIHN0ZXAoewotICAgICAg
ICAgICAgbmFtZTogIkdldCB0aGUgbGF5ZXIgdHJlZSIsCi0gICAgICAgICAgICBjb21tYW5kOiAi
TGF5ZXJUcmVlLmxheWVyc0Zvck5vZGUiLAotICAgICAgICAgICAgcGFyYW1ldGVyczogeyJub2Rl
SWQiOiByZXN1bHQucm9vdC5ub2RlSWR9LAotICAgICAgICAgICAgY2FsbGJhY2s6IGdvdExheWVy
VHJlZQotICAgICAgICB9KTsKLSAgICB9OwotCi0gICAgZnVuY3Rpb24gZ290TGF5ZXJUcmVlKHJl
c3VsdCkKLSAgICB7Ci0gICAgICAgIGxvZ1Rlc3ROYW1lKCJDaGVjayBsYXllcnMnIHJlYXNvbnMg
Zm9yIGNvbXBvc2l0aW5nIikKLSAgICAgICAgCi0gICAgICAgIHZhciBsYXllcnMgPSByZXN1bHQu
bGF5ZXJzOwotCi0gICAgICAgIHZhciBub2Rlc0J5SWQgPSB7fTsKLSAgICAgICAgbm9kZXMuZm9y
RWFjaChmdW5jdGlvbihub2RlKSB7Ci0gICAgICAgICAgICBub2Rlc0J5SWRbbm9kZS5ub2RlSWRd
ID0gbm9kZTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgdmFyIGNvdW50ID0gMDsKLSAgICAgICAg
Ci0gICAgICAgIGZ1bmN0aW9uIGhhc0lkKG5vZGUsIGlkKSB7Ci0gICAgICAgICAgICByZXR1cm4g
bm9kZSAmJiBub2RlLmF0dHJpYnV0ZXMgJiYgbm9kZS5hdHRyaWJ1dGVzWzBdID09PSAiaWQiICYm
IG5vZGUuYXR0cmlidXRlc1sxXSA9PT0gaWQ7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAg
IGZ1bmN0aW9uIGR1bXBSZWFzb25zKGxheWVyLCBjb21wb3NpdGluZ1JlYXNvbnMpIHsKLSAgICAg
ICAgICAgIHZhciBub2RlID0gbm9kZXNCeUlkW2xheWVyLm5vZGVJZF07Ci0KLSAgICAgICAgICAg
IGlmIChoYXNJZChub2RlLCAiYmxlbmRpbmciKSkgewotICAgICAgICAgICAgICAgIGFzc2VydCgK
LSAgICAgICAgICAgICAgICAgICAgIjxkaXYgaWQ9XCJibGVuZGluZ1wiPiBpcyBjb21wb3NpdGVk
IGR1ZSBoYXZpbmcgQ1NTIGJsZW5kaW5nIGFwcGxpZWQgYW5kIGNvbXBvc2l0ZWQgZGVzY2VuZGFu
dHMiLAotICAgICAgICAgICAgICAgICAgICBjb21wb3NpdGluZ1JlYXNvbnMuYmxlbmRpbmdXaXRo
Q29tcG9zaXRlZERlc2NlbmRhbnRzLAotICAgICAgICAgICAgICAgICAgICB0cnVlKTsKLSAgICAg
ICAgICAgIH0gZWxzZSBpZiAoaGFzSWQobm9kZSwgImlzb2xhdGluZyIpKSB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0KAotICAgICAgICAgICAgICAgICAgICAiPGRpdiBpZD1cImlzb2xhdGluZ1wi
PiBpcyBjb21wb3NpdGlvbiBkdWUgdG8gaXNvbGF0aW5nIGNvbXBvc2l0aW5nIGRlc2NlbmRhbnRz
IGhhdmluZyBDU1MgYmxlbmRpbmcgYXBwbGllZCIsCi0gICAgICAgICAgICAgICAgICAgIGNvbXBv
c2l0aW5nUmVhc29ucy5pc29sYXRlc0NvbXBvc2l0ZWRCbGVuZGluZ0Rlc2NlbmRhbnRzLAotICAg
ICAgICAgICAgICAgICAgICB0cnVlKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYg
KCsrY291bnQgPT09IGxheWVycy5sZW5ndGgpCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKLSAgICAgICAgfTsKLQotICAgICAgICBsYXllcnMuZm9yRWFjaChm
dW5jdGlvbiAobGF5ZXIpIHsKLSAgICAgICAgICAgIHJ1bkNvbW1hbmQoewotICAgICAgICAgICAg
ICAgIGNvbW1hbmQ6ICJMYXllclRyZWUucmVhc29uc0ZvckNvbXBvc2l0aW5nTGF5ZXIiLAotICAg
ICAgICAgICAgICAgIHBhcmFtZXRlcnM6IHsibGF5ZXJJZCI6IGxheWVyLmxheWVySWR9LAotICAg
ICAgICAgICAgICAgIGNhbGxiYWNrOiBmdW5jdGlvbihyZXN1bHQpIHsKLSAgICAgICAgICAgICAg
ICAgICAgZHVtcFJlYXNvbnMobGF5ZXIsIHJlc3VsdC5jb21wb3NpdGluZ1JlYXNvbnMpOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0pOwotICAgICAgICB9KTsKLSAgICB9OwotCi0g
ICAgZnVuY3Rpb24gc2V0Q2hpbGROb2RlcyAobWVzc2FnZU9iamVjdCkgewotICAgICAgICBtZXNz
YWdlT2JqZWN0LnBhcmFtcy5ub2Rlcy5mb3JFYWNoKGZ1bmN0aW9uIChub2RlKSB7Ci0gICAgICAg
ICAgICBub2Rlcy5wdXNoKG5vZGUpOwotICAgICAgICB9KQotICAgIH07Ci0KLSAgICBmdW5jdGlv
biBzdGVwKHRlc3QpCi0gICAgewotICAgICAgICBpZiAodGVzdC5jYWxsYmFjaykKLSAgICAgICAg
ICAgIGxvZ1Rlc3ROYW1lKHRlc3QubmFtZSk7Ci0gICAgICAgIHJ1bkNvbW1hbmQodGVzdCk7Ci0g
ICAgfTsKLQotICAgIGZ1bmN0aW9uIGxvZ1Rlc3ROYW1lKG5hbWUpCi0gICAgewotICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygiXG49PT0gIiArIG5hbWUgKyAiID09PVxuIik7Ci0gICAgfTsKLQot
ICAgIGZ1bmN0aW9uIHJ1bkNvbW1hbmQoY29tbWFuZCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3Quc2VuZENvbW1hbmQoY29tbWFuZC5jb21tYW5kLCBjb21tYW5kLnBhcmFtZXRlcnMsIGZ1
bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tG
b3JFcnJvcihtZXNzYWdlT2JqZWN0KTsKLQotICAgICAgICAgICAgaWYgKGNvbW1hbmQubmFtZSkK
LSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUyIpOwotCi0gICAgICAgICAg
ICBpZiAoY29tbWFuZC5jYWxsYmFjaykKLSAgICAgICAgICAgICAgICBjb21tYW5kLmNhbGxiYWNr
KG1lc3NhZ2VPYmplY3QucmVzdWx0KTsKLSAgICAgICAgfSk7Ci0gICAgfTsKLQotICAgIGZ1bmN0
aW9uIGFzc2VydChuYW1lLCBhY3R1YWwsIGV4cGVjdGVkKQotICAgIHsKLSAgICAgICAgaWYgKGV4
cGVjdGVkID09PSBhY3R1YWwpCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzog
IiArIG5hbWUgKyAiLiIpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZygiRkFJTDogIiArIG5hbWUgKyAiLiBFeHBlY3RlZCAiICsgZXhwZWN0ZWQgKyAiIGJ1dCBn
b3QgIiArIGFjdHVhbCk7Ci0gICAgfTsKLQotfTsKLQotd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
IkRPTUNvbnRlbnRMb2FkZWQiLCBmdW5jdGlvbigpCi17Ci0gICAgcnVuVGVzdCgpOwotfSwgZmFs
c2UpOwotCi08L3NjcmlwdD4KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci0gICAgICAKLSAgICAj
aXNvbGF0aW5nIHsKLSAgICAgICAgaXNvbGF0aW9uOiBpc29sYXRlOwotICAgIH0KLQotICAgICNi
bGVuZGluZyB7Ci0gICAgICAgIG1peC1ibGVuZC1tb2RlOiBkaWZmZXJlbmNlOwotICAgIH0KLQot
ICAgICNjb21wb3NpdGVkIHsKLSAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVoo
MCk7Ci0gICAgfQotCi08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci0gICAgPGRpdiBpZD0iaXNv
bGF0aW5nIj4KLSAgICAgICAgPGRpdiBpZD0iYmxlbmRpbmciPgotICAgICAgICAgICAgPGRpdiBp
ZD0iY29tcG9zaXRlZCI+PC9kaXY+Ci0gICAgICAgIDwvZGl2PgotICAgIDwvZGl2PgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2xh
eWVycy9sYXllcnMtY29tcG9zaXRpbmctcmVhc29ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvbGF5ZXJzL2xheWVycy1jb21wb3NpdGluZy1yZWFzb25zLWV4
cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODZmYjY0NDgwZDRkMTA0
N2JjM2Y1YjNiMzc5YjhhOWQ2NmY5YTUzYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbGF5ZXJzL2xh
eWVycy1jb21wb3NpdGluZy1yZWFzb25zLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDE4ICswLDAgQEAKLQotPT09IEVuYWJsZSB0aGUgTGF5ZXJUcmVlIGFnZW50ID09PQotCi1QQVNT
Ci0KLT09PSBHZXQgdGhlIERvY3VtZW50ID09PQotCi1QQVNTCi0KLT09PSBHZXQgdGhlIGxheWVy
IHRyZWUgPT09Ci0KLVBBU1MKLQotPT09IENoZWNrIGxheWVycycgcmVhc29ucyBmb3IgY29tcG9z
aXRpbmcgPT09Ci0KLVBBU1M6IDxkaXYgaWQ9Im9wYWNpdHktY29udGFpbmVyIj4gaXMgY29tcG9z
aXRlZCBkdWUgdG8gaGF2aW5nIGFuIG9wYWNpdHkgc3R5bGUgYW5kIGEgY29tcG9zaXRlZCBjaGls
ZC4KLVBBU1M6IDxkaXYgaWQ9ImNoaWxkIj4gaXMgY29tcG9zaXRlZCBkdWUgdG8gaGF2aW5nICJi
YWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW4iIGFuZCBhIDNEIHRyYW5zZm9ybS4KLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2xheWVycy9sYXllcnMtY29tcG9z
aXRpbmctcmVhc29ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2xheWVy
cy9sYXllcnMtY29tcG9zaXRpbmctcmVhc29ucy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxZTM4MDMyZDVjMTlkZTRlZGNjOWZjMzk0Y2JkYzk4NzJhOGYwNTczLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9sYXllcnMvbGF5ZXJzLWNvbXBvc2l0aW5nLXJlYXNvbnMuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDE2NiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3Vy
Y2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLQotICAgIHZhciBub2RlcyA9IFtdOwotIAot
ICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJET00uc2V0Q2hpbGROb2RlcyJdID0gc2V0
Q2hpbGROb2RlczsKLQotICAgIGVuYWJsZUxheWVyVHJlZUFnZW50KCk7Ci0gICAgCi0gICAgZnVu
Y3Rpb24gZW5hYmxlTGF5ZXJUcmVlQWdlbnQocmVzdWx0KQotICAgIHsKLSAgICAgICAgc3RlcCh7
Ci0gICAgICAgICAgICBuYW1lOiAiRW5hYmxlIHRoZSBMYXllclRyZWUgYWdlbnQiLAotICAgICAg
ICAgICAgY29tbWFuZDogIkxheWVyVHJlZS5lbmFibGUiLAotICAgICAgICAgICAgcGFyYW1ldGVy
czoge30sCi0gICAgICAgICAgICBjYWxsYmFjazogZ2V0RG9jdW1lbnQKLSAgICAgICAgfSk7Ci0g
ICAgfTsKLQotICAgIGZ1bmN0aW9uIGdldERvY3VtZW50KCkKLSAgICB7Ci0gICAgICAgIC8vIFdl
IG11c3QgZmlyc3QgZ2V0IHRoZSBkb2N1bWVudCBzbyB0aGF0IGxhdGVyIG9uIHdlIG1heSBnZXQg
c2Vuc2libGUgbm9kZUlkcy4KLSAgICAgICAgc3RlcCh7Ci0gICAgICAgICAgICBuYW1lOiAiR2V0
IHRoZSBEb2N1bWVudCIsCi0gICAgICAgICAgICBjb21tYW5kOiAiRE9NLmdldERvY3VtZW50IiwK
LSAgICAgICAgICAgIHBhcmFtZXRlcnM6IHt9LAotICAgICAgICAgICAgY2FsbGJhY2s6IGdldExh
eWVyVHJlZQotICAgICAgICB9KTsKLSAgICB9OwotCi0gICAgZnVuY3Rpb24gZ2V0TGF5ZXJUcmVl
KHJlc3VsdCkKLSAgICB7Ci0gICAgICAgIHN0ZXAoewotICAgICAgICAgICAgbmFtZTogIkdldCB0
aGUgbGF5ZXIgdHJlZSIsCi0gICAgICAgICAgICBjb21tYW5kOiAiTGF5ZXJUcmVlLmxheWVyc0Zv
ck5vZGUiLAotICAgICAgICAgICAgcGFyYW1ldGVyczogeyJub2RlSWQiOiByZXN1bHQucm9vdC5u
b2RlSWR9LAotICAgICAgICAgICAgY2FsbGJhY2s6IGdvdExheWVyVHJlZQotICAgICAgICB9KTsK
LSAgICB9OwotCi0gICAgZnVuY3Rpb24gZ290TGF5ZXJUcmVlKHJlc3VsdCkKLSAgICB7Ci0gICAg
ICAgIGxvZ1Rlc3ROYW1lKCJDaGVjayBsYXllcnMnIHJlYXNvbnMgZm9yIGNvbXBvc2l0aW5nIikK
LSAgICAgICAgCi0gICAgICAgIHZhciBsYXllcnMgPSByZXN1bHQubGF5ZXJzOwotCi0gICAgICAg
IHZhciBub2Rlc0J5SWQgPSB7fTsKLSAgICAgICAgbm9kZXMuZm9yRWFjaChmdW5jdGlvbihub2Rl
KSB7Ci0gICAgICAgICAgICBub2Rlc0J5SWRbbm9kZS5ub2RlSWRdID0gbm9kZTsKLSAgICAgICAg
fSk7Ci0KLSAgICAgICAgdmFyIGNvdW50ID0gMDsKLSAgICAgICAgCi0gICAgICAgIGZ1bmN0aW9u
IGhhc0lkKG5vZGUsIGlkKSB7Ci0gICAgICAgICAgICByZXR1cm4gbm9kZSAmJiBub2RlLmF0dHJp
YnV0ZXMgJiYgbm9kZS5hdHRyaWJ1dGVzWzBdID09PSAiaWQiICYmIG5vZGUuYXR0cmlidXRlc1sx
XSA9PT0gaWQ7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIGZ1bmN0aW9uIGR1bXBSZWFz
b25zKGxheWVyLCBjb21wb3NpdGluZ1JlYXNvbnMpIHsKLSAgICAgICAgICAgIHZhciBub2RlID0g
bm9kZXNCeUlkW2xheWVyLm5vZGVJZF07Ci0KLSAgICAgICAgICAgIGlmIChoYXNJZChub2RlLCAi
b3BhY2l0eS1jb250YWluZXIiKSkgewotICAgICAgICAgICAgICAgIGFzc2VydCgKLSAgICAgICAg
ICAgICAgICAgICAgIjxkaXYgaWQ9XCJvcGFjaXR5LWNvbnRhaW5lclwiPiBpcyBjb21wb3NpdGVk
IGR1ZSB0byBoYXZpbmcgYW4gb3BhY2l0eSBzdHlsZSBhbmQgYSBjb21wb3NpdGVkIGNoaWxkIiwK
LSAgICAgICAgICAgICAgICAgICAgY29tcG9zaXRpbmdSZWFzb25zLm9wYWNpdHlXaXRoQ29tcG9z
aXRlZERlc2NlbmRhbnRzLAotICAgICAgICAgICAgICAgICAgICB0cnVlKTsKLSAgICAgICAgICAg
IH0gZWxzZSBpZiAoaGFzSWQobm9kZSwgImNoaWxkIikpIHsKLSAgICAgICAgICAgICAgICBhc3Nl
cnQoCi0gICAgICAgICAgICAgICAgICAgICI8ZGl2IGlkPVwiY2hpbGRcIj4gaXMgY29tcG9zaXRl
ZCBkdWUgdG8gaGF2aW5nIFwiYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuXCIgYW5kIGEgM0Qg
dHJhbnNmb3JtIiwKLSAgICAgICAgICAgICAgICAgICAgY29tcG9zaXRpbmdSZWFzb25zLnRyYW5z
Zm9ybTNEICYmIGNvbXBvc2l0aW5nUmVhc29ucy5iYWNrZmFjZVZpc2liaWxpdHlIaWRkZW4sCi0g
ICAgICAgICAgICAgICAgICAgIHRydWUpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBp
ZiAoKytjb3VudCA9PT0gbGF5ZXJzLmxlbmd0aCkKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICB9OwotCi0gICAgICAgIGxheWVycy5mb3JFYWNo
KGZ1bmN0aW9uIChsYXllcikgewotICAgICAgICAgICAgcnVuQ29tbWFuZCh7Ci0gICAgICAgICAg
ICAgICAgY29tbWFuZDogIkxheWVyVHJlZS5yZWFzb25zRm9yQ29tcG9zaXRpbmdMYXllciIsCi0g
ICAgICAgICAgICAgICAgcGFyYW1ldGVyczogeyJsYXllcklkIjogbGF5ZXIubGF5ZXJJZH0sCi0g
ICAgICAgICAgICAgICAgY2FsbGJhY2s6IGZ1bmN0aW9uKHJlc3VsdCkgewotICAgICAgICAgICAg
ICAgICAgICBkdW1wUmVhc29ucyhsYXllciwgcmVzdWx0LmNvbXBvc2l0aW5nUmVhc29ucyk7Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH07Ci0K
LSAgICBmdW5jdGlvbiBzZXRDaGlsZE5vZGVzIChtZXNzYWdlT2JqZWN0KSB7Ci0gICAgICAgIG1l
c3NhZ2VPYmplY3QucGFyYW1zLm5vZGVzLmZvckVhY2goZnVuY3Rpb24gKG5vZGUpIHsKLSAgICAg
ICAgICAgIG5vZGVzLnB1c2gobm9kZSk7Ci0gICAgICAgIH0pCi0gICAgfTsKLQotICAgIGZ1bmN0
aW9uIHN0ZXAodGVzdCkKLSAgICB7Ci0gICAgICAgIGlmICh0ZXN0LmNhbGxiYWNrKQotICAgICAg
ICAgICAgbG9nVGVzdE5hbWUodGVzdC5uYW1lKTsKLSAgICAgICAgcnVuQ29tbWFuZCh0ZXN0KTsK
LSAgICB9OwotCi0gICAgZnVuY3Rpb24gbG9nVGVzdE5hbWUobmFtZSkKLSAgICB7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJcbj09PSAiICsgbmFtZSArICIgPT09XG4iKTsKLSAgICB9Owot
Ci0gICAgZnVuY3Rpb24gcnVuQ29tbWFuZChjb21tYW5kKQotICAgIHsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5zZW5kQ29tbWFuZChjb21tYW5kLmNvbW1hbmQsIGNvbW1hbmQucGFyYW1ldGVycywg
ZnVuY3Rpb24obWVzc2FnZU9iamVjdCkgewotICAgICAgICAgICAgaWYgKG1lc3NhZ2VPYmplY3Qu
aGFzT3duUHJvcGVydHkoImVycm9yIikpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZygiRkFJTDogIiArIG1lc3NhZ2VPYmplY3QuZXJyb3IubWVzc2FnZSArICIgKCIgKyBtZXNz
YWdlT2JqZWN0LmVycm9yLmNvZGUgKyAiKSIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBpZiAoY29tbWFuZC5uYW1lKQotICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJQQVNTIik7Ci0KLSAgICAgICAgICAgIGlmIChjb21tYW5kLmNhbGxiYWNr
KQotICAgICAgICAgICAgICAgIGNvbW1hbmQuY2FsbGJhY2sobWVzc2FnZU9iamVjdC5yZXN1bHQp
OwotICAgICAgICB9KTsKLSAgICB9OwotCi0gICAgZnVuY3Rpb24gYXNzZXJ0KG5hbWUsIGFjdHVh
bCwgZXhwZWN0ZWQpCi0gICAgewotICAgICAgICBpZiAoZXhwZWN0ZWQgPT09IGFjdHVhbCkKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiAiICsgbmFtZSArICIuIik7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiAiICsgbmFtZSAr
ICIuIEV4cGVjdGVkICIgKyBleHBlY3RlZCArICIgYnV0IGdvdCAiICsgYWN0dWFsKTsKLSAgICB9
OwotCi19OwotCi13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1
bmN0aW9uKCkKLXsKLSAgICBydW5UZXN0KCk7Ci19LCBmYWxzZSk7Ci0KLTwvc2NyaXB0PgotPHN0
eWxlIHR5cGU9InRleHQvY3NzIj4KLSAgICAgIAotICAgICNvcGFjaXR5LWNvbnRhaW5lciB7Ci0g
ICAgICAgIG9wYWNpdHk6IDAuNTsKLSAgICB9Ci0KLSAgICAjY2hpbGQgewotICAgICAgICAtd2Vi
a2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjsKLSAgICAgICAgLXdlYmtpdC10cmFuc2Zv
cm06IHRyYW5zbGF0ZVooMCk7Ci0gICAgfQotCi08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci0K
LSAgICA8ZGl2IGlkPSJmaXhlZCI+PC9kaXY+Ci0KLSAgICA8ZGl2IGlkPSJvcGFjaXR5LWNvbnRh
aW5lciI+Ci0gICAgICAgIDxkaXYgaWQ9ImNoaWxkIj48L2Rpdj4KLSAgICA8L2Rpdj4KLQotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L2xheWVycy9sYXllcnMtZm9yLW5vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2xheWVycy9sYXllcnMtZm9yLW5vZGUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOTliYWNhMmM5OTk2M2I5MTljMDhlZjVhYTRiOTFhOGFh
YTIxNDk2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9sYXllcnMvbGF5ZXJzLWZvci1ub2RlLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDI2NyArMCwwIEBACi0KLT09PSBFbmFibGUgdGhl
IExheWVyVHJlZSBhZ2VudCA9PT0KLQotUEFTUwotCi09PT0gR2V0IHRoZSBEb2N1bWVudCA9PT0K
LQotUEFTUwotCi09PT0gR2V0IHRoZSBpbml0aWFsIGxheWVyIHRyZWUgPT09Ci0KLVBBU1MKLQot
WwotICAgIHsKLSAgICAgICAgImxheWVySWQiOiAic3RyaW5nIiwKLSAgICAgICAgIm5vZGVJZCI6
ICJudW1iZXIiLAotICAgICAgICAiYm91bmRzIjogewotICAgICAgICAgICAgIngiOiAwLAotICAg
ICAgICAgICAgInkiOiAwLAotICAgICAgICAgICAgIndpZHRoIjogIm51bWJlciIsCi0gICAgICAg
ICAgICAiaGVpZ2h0IjogIm51bWJlciIKLSAgICAgICAgfSwKLSAgICAgICAgIm1lbW9yeSI6ICJu
dW1iZXIiLAotICAgICAgICAiY29tcG9zaXRlZEJvdW5kcyI6IHsKLSAgICAgICAgICAgICJ4Ijog
MCwKLSAgICAgICAgICAgICJ5IjogMCwKLSAgICAgICAgICAgICJ3aWR0aCI6ICJudW1iZXIiLAot
ICAgICAgICAgICAgImhlaWdodCI6ICJudW1iZXIiCi0gICAgICAgIH0sCi0gICAgICAgICJwYWlu
dENvdW50IjogIm51bWJlciIKLSAgICB9LAotICAgIHsKLSAgICAgICAgImxheWVySWQiOiAic3Ry
aW5nIiwKLSAgICAgICAgIm5vZGVJZCI6ICJudW1iZXIiLAotICAgICAgICAiYm91bmRzIjogewot
ICAgICAgICAgICAgIngiOiAyNSwKLSAgICAgICAgICAgICJ5IjogMjUsCi0gICAgICAgICAgICAi
d2lkdGgiOiA1MCwKLSAgICAgICAgICAgICJoZWlnaHQiOiA1MAotICAgICAgICB9LAotICAgICAg
ICAibWVtb3J5IjogIm51bWJlciIsCi0gICAgICAgICJjb21wb3NpdGVkQm91bmRzIjogewotICAg
ICAgICAgICAgIngiOiAwLAotICAgICAgICAgICAgInkiOiAwLAotICAgICAgICAgICAgIndpZHRo
IjogNTAsCi0gICAgICAgICAgICAiaGVpZ2h0IjogNTAKLSAgICAgICAgfSwKLSAgICAgICAgInBh
aW50Q291bnQiOiAibnVtYmVyIgotICAgIH0sCi0gICAgewotICAgICAgICAibGF5ZXJJZCI6ICJz
dHJpbmciLAotICAgICAgICAibm9kZUlkIjogIm51bWJlciIsCi0gICAgICAgICJib3VuZHMiOiB7
Ci0gICAgICAgICAgICAieCI6IDUwLAotICAgICAgICAgICAgInkiOiA1MCwKLSAgICAgICAgICAg
ICJ3aWR0aCI6IDUwLAotICAgICAgICAgICAgImhlaWdodCI6IDUwCi0gICAgICAgIH0sCi0gICAg
ICAgICJtZW1vcnkiOiAibnVtYmVyIiwKLSAgICAgICAgImNvbXBvc2l0ZWRCb3VuZHMiOiB7Ci0g
ICAgICAgICAgICAieCI6IDAsCi0gICAgICAgICAgICAieSI6IDAsCi0gICAgICAgICAgICAid2lk
dGgiOiA1MCwKLSAgICAgICAgICAgICJoZWlnaHQiOiA1MAotICAgICAgICB9LAotICAgICAgICAi
cGFpbnRDb3VudCI6ICJudW1iZXIiCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJsYXllcklkIjog
InN0cmluZyIsCi0gICAgICAgICJub2RlSWQiOiAibnVtYmVyIiwKLSAgICAgICAgImJvdW5kcyI6
IHsKLSAgICAgICAgICAgICJ4IjogMjAwLAotICAgICAgICAgICAgInkiOiAwLAotICAgICAgICAg
ICAgIndpZHRoIjogMTAwLAotICAgICAgICAgICAgImhlaWdodCI6IDEwMAotICAgICAgICB9LAot
ICAgICAgICAibWVtb3J5IjogIm51bWJlciIsCi0gICAgICAgICJjb21wb3NpdGVkQm91bmRzIjog
ewotICAgICAgICAgICAgIngiOiAwLAotICAgICAgICAgICAgInkiOiAwLAotICAgICAgICAgICAg
IndpZHRoIjogMTAwLAotICAgICAgICAgICAgImhlaWdodCI6IDEwMAotICAgICAgICB9LAotICAg
ICAgICAicGFpbnRDb3VudCI6ICJudW1iZXIiCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJsYXll
cklkIjogInN0cmluZyIsCi0gICAgICAgICJub2RlSWQiOiAibnVtYmVyIiwKLSAgICAgICAgImJv
dW5kcyI6IHsKLSAgICAgICAgICAgICJ4IjogMjI1LAotICAgICAgICAgICAgInkiOiAyNSwKLSAg
ICAgICAgICAgICJ3aWR0aCI6IDUwLAotICAgICAgICAgICAgImhlaWdodCI6IDUwCi0gICAgICAg
IH0sCi0gICAgICAgICJtZW1vcnkiOiAibnVtYmVyIiwKLSAgICAgICAgImNvbXBvc2l0ZWRCb3Vu
ZHMiOiB7Ci0gICAgICAgICAgICAieCI6IDAsCi0gICAgICAgICAgICAieSI6IDAsCi0gICAgICAg
ICAgICAid2lkdGgiOiA1MCwKLSAgICAgICAgICAgICJoZWlnaHQiOiA1MAotICAgICAgICB9LAot
ICAgICAgICAicGFpbnRDb3VudCI6ICJudW1iZXIiCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJs
YXllcklkIjogInN0cmluZyIsCi0gICAgICAgICJub2RlSWQiOiAibnVtYmVyIiwKLSAgICAgICAg
ImJvdW5kcyI6IHsKLSAgICAgICAgICAgICJ4IjogMCwKLSAgICAgICAgICAgICJ5IjogMCwKLSAg
ICAgICAgICAgICJ3aWR0aCI6ICJudW1iZXIiLAotICAgICAgICAgICAgImhlaWdodCI6ICJudW1i
ZXIiCi0gICAgICAgIH0sCi0gICAgICAgICJtZW1vcnkiOiAibnVtYmVyIiwKLSAgICAgICAgImNv
bXBvc2l0ZWRCb3VuZHMiOiB7Ci0gICAgICAgICAgICAieCI6IDAsCi0gICAgICAgICAgICAieSI6
IDAsCi0gICAgICAgICAgICAid2lkdGgiOiAibnVtYmVyIiwKLSAgICAgICAgICAgICJoZWlnaHQi
OiAibnVtYmVyIgotICAgICAgICB9LAotICAgICAgICAicGFpbnRDb3VudCI6ICJudW1iZXIiCi0g
ICAgfQotXQotCi09PT0gTWVzc2FnZSB0aGUgcGFnZSB0byBhZGQgYSBuZXcgY29tcG9zaXRlZCBs
YXllciA9PT0KLQotUEFTUwotCi09PT0gR2V0IHRoZSBtb2RpZmllZCBsYXllciB0cmVlID09PQot
Ci1QQVNTCi0KLVsKLSAgICB7Ci0gICAgICAgICJsYXllcklkIjogInN0cmluZyIsCi0gICAgICAg
ICJub2RlSWQiOiAibnVtYmVyIiwKLSAgICAgICAgImJvdW5kcyI6IHsKLSAgICAgICAgICAgICJ4
IjogMCwKLSAgICAgICAgICAgICJ5IjogMCwKLSAgICAgICAgICAgICJ3aWR0aCI6ICJudW1iZXIi
LAotICAgICAgICAgICAgImhlaWdodCI6ICJudW1iZXIiCi0gICAgICAgIH0sCi0gICAgICAgICJt
ZW1vcnkiOiAibnVtYmVyIiwKLSAgICAgICAgImNvbXBvc2l0ZWRCb3VuZHMiOiB7Ci0gICAgICAg
ICAgICAieCI6IDAsCi0gICAgICAgICAgICAieSI6IDAsCi0gICAgICAgICAgICAid2lkdGgiOiAi
bnVtYmVyIiwKLSAgICAgICAgICAgICJoZWlnaHQiOiAibnVtYmVyIgotICAgICAgICB9LAotICAg
ICAgICAicGFpbnRDb3VudCI6ICJudW1iZXIiCi0gICAgfSwKLSAgICB7Ci0gICAgICAgICJsYXll
cklkIjogInN0cmluZyIsCi0gICAgICAgICJub2RlSWQiOiAibnVtYmVyIiwKLSAgICAgICAgImJv
dW5kcyI6IHsKLSAgICAgICAgICAgICJ4IjogMjUsCi0gICAgICAgICAgICAieSI6IDI1LAotICAg
ICAgICAgICAgIndpZHRoIjogNTAsCi0gICAgICAgICAgICAiaGVpZ2h0IjogNTAKLSAgICAgICAg
fSwKLSAgICAgICAgIm1lbW9yeSI6ICJudW1iZXIiLAotICAgICAgICAiY29tcG9zaXRlZEJvdW5k
cyI6IHsKLSAgICAgICAgICAgICJ4IjogMCwKLSAgICAgICAgICAgICJ5IjogMCwKLSAgICAgICAg
ICAgICJ3aWR0aCI6IDUwLAotICAgICAgICAgICAgImhlaWdodCI6IDUwCi0gICAgICAgIH0sCi0g
ICAgICAgICJwYWludENvdW50IjogIm51bWJlciIKLSAgICB9LAotICAgIHsKLSAgICAgICAgImxh
eWVySWQiOiAic3RyaW5nIiwKLSAgICAgICAgIm5vZGVJZCI6ICJudW1iZXIiLAotICAgICAgICAi
Ym91bmRzIjogewotICAgICAgICAgICAgIngiOiA1MCwKLSAgICAgICAgICAgICJ5IjogNTAsCi0g
ICAgICAgICAgICAid2lkdGgiOiA1MCwKLSAgICAgICAgICAgICJoZWlnaHQiOiA1MAotICAgICAg
ICB9LAotICAgICAgICAibWVtb3J5IjogIm51bWJlciIsCi0gICAgICAgICJjb21wb3NpdGVkQm91
bmRzIjogewotICAgICAgICAgICAgIngiOiAwLAotICAgICAgICAgICAgInkiOiAwLAotICAgICAg
ICAgICAgIndpZHRoIjogNTAsCi0gICAgICAgICAgICAiaGVpZ2h0IjogNTAKLSAgICAgICAgfSwK
LSAgICAgICAgInBhaW50Q291bnQiOiAibnVtYmVyIgotICAgIH0sCi0gICAgewotICAgICAgICAi
bGF5ZXJJZCI6ICJzdHJpbmciLAotICAgICAgICAibm9kZUlkIjogIm51bWJlciIsCi0gICAgICAg
ICJib3VuZHMiOiB7Ci0gICAgICAgICAgICAieCI6IDIwMCwKLSAgICAgICAgICAgICJ5IjogMCwK
LSAgICAgICAgICAgICJ3aWR0aCI6IDEwMCwKLSAgICAgICAgICAgICJoZWlnaHQiOiAxMDAKLSAg
ICAgICAgfSwKLSAgICAgICAgIm1lbW9yeSI6ICJudW1iZXIiLAotICAgICAgICAiY29tcG9zaXRl
ZEJvdW5kcyI6IHsKLSAgICAgICAgICAgICJ4IjogMCwKLSAgICAgICAgICAgICJ5IjogMCwKLSAg
ICAgICAgICAgICJ3aWR0aCI6IDEwMCwKLSAgICAgICAgICAgICJoZWlnaHQiOiAxMDAKLSAgICAg
ICAgfSwKLSAgICAgICAgInBhaW50Q291bnQiOiAibnVtYmVyIgotICAgIH0sCi0gICAgewotICAg
ICAgICAibGF5ZXJJZCI6ICJzdHJpbmciLAotICAgICAgICAibm9kZUlkIjogIm51bWJlciIsCi0g
ICAgICAgICJib3VuZHMiOiB7Ci0gICAgICAgICAgICAieCI6IDIyNSwKLSAgICAgICAgICAgICJ5
IjogMjUsCi0gICAgICAgICAgICAid2lkdGgiOiA1MCwKLSAgICAgICAgICAgICJoZWlnaHQiOiA1
MAotICAgICAgICB9LAotICAgICAgICAibWVtb3J5IjogIm51bWJlciIsCi0gICAgICAgICJjb21w
b3NpdGVkQm91bmRzIjogewotICAgICAgICAgICAgIngiOiAwLAotICAgICAgICAgICAgInkiOiAw
LAotICAgICAgICAgICAgIndpZHRoIjogNTAsCi0gICAgICAgICAgICAiaGVpZ2h0IjogNTAKLSAg
ICAgICAgfSwKLSAgICAgICAgInBhaW50Q291bnQiOiAibnVtYmVyIgotICAgIH0sCi0gICAgewot
ICAgICAgICAibGF5ZXJJZCI6ICJzdHJpbmciLAotICAgICAgICAibm9kZUlkIjogIm51bWJlciIs
Ci0gICAgICAgICJib3VuZHMiOiB7Ci0gICAgICAgICAgICAieCI6IDAsCi0gICAgICAgICAgICAi
eSI6IDAsCi0gICAgICAgICAgICAid2lkdGgiOiAibnVtYmVyIiwKLSAgICAgICAgICAgICJoZWln
aHQiOiAibnVtYmVyIgotICAgICAgICB9LAotICAgICAgICAibWVtb3J5IjogIm51bWJlciIsCi0g
ICAgICAgICJjb21wb3NpdGVkQm91bmRzIjogewotICAgICAgICAgICAgIngiOiAwLAotICAgICAg
ICAgICAgInkiOiAwLAotICAgICAgICAgICAgIndpZHRoIjogIm51bWJlciIsCi0gICAgICAgICAg
ICAiaGVpZ2h0IjogIm51bWJlciIKLSAgICAgICAgfSwKLSAgICAgICAgInBhaW50Q291bnQiOiAi
bnVtYmVyIgotICAgIH0sCi0gICAgewotICAgICAgICAibGF5ZXJJZCI6ICJzdHJpbmciLAotICAg
ICAgICAibm9kZUlkIjogIm51bWJlciIsCi0gICAgICAgICJib3VuZHMiOiB7Ci0gICAgICAgICAg
ICAieCI6IDI1LAotICAgICAgICAgICAgInkiOiAyNSwKLSAgICAgICAgICAgICJ3aWR0aCI6IDUw
LAotICAgICAgICAgICAgImhlaWdodCI6IDUwCi0gICAgICAgIH0sCi0gICAgICAgICJtZW1vcnki
OiAibnVtYmVyIiwKLSAgICAgICAgImNvbXBvc2l0ZWRCb3VuZHMiOiB7Ci0gICAgICAgICAgICAi
eCI6IDAsCi0gICAgICAgICAgICAieSI6IDAsCi0gICAgICAgICAgICAid2lkdGgiOiA1MCwKLSAg
ICAgICAgICAgICJoZWlnaHQiOiA1MAotICAgICAgICB9LAotICAgICAgICAicGFpbnRDb3VudCI6
ICJudW1iZXIiCi0gICAgfQotXQotCi09PT0gR2V0IGF0dHJpYnV0ZXMgZm9yIHRoZSBuZXdseSBp
bnNlcnRlZCBub2RlID09PQotCi1QQVNTCi0KLT09PSBUZXN0IGNvbXBsZXRlLCBhbGwgZXhwZWN0
ZWQgY29uZGl0aW9ucyBtZXQgPT09Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci1wcm90b2NvbC9sYXllcnMvbGF5ZXJzLWZvci1ub2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3ItcHJvdG9jb2wvbGF5ZXJzL2xheWVycy1mb3Itbm9kZS5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjZmQ2NTVkYmQ0YTIzZjgwZDkwMjZiZmIyN2VlNWM4ZDMzMmFkNGQ3
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci1wcm90b2NvbC9sYXllcnMvbGF5ZXJzLWZvci1ub2RlLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwyMzYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
cy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4KLQotZnVuY3Rpb24gYWRkQ29tcG9zaXRlZExheWVyKCkKLXsKLSAgICB2YXIgZWxlbWVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIGVsZW1lbnQuY2xhc3NOYW1l
ID0gImNvbXBvc2l0ZWQiOwotICAgIGVsZW1lbnQuaWQgPSAibGFzdC1lbGVtZW50IjsKLSAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOwotfTsKLQotZnVuY3Rpb24gdGVzdCgp
Ci17Ci0gICAgdmFyIGRvY3VtZW50Tm9kZTsKLSAgICB2YXIgaW5pdGlhbExheWVyczsKLSAgICB2
YXIgZXZlbnRzQ291bnQgPSAwOwotCi0gICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkxh
eWVyVHJlZS5sYXllclRyZWVEaWRDaGFuZ2UiXSA9IGZ1bmN0aW9uIChtZXNzYWdlT2JqZWN0KSB7
Ci0gICAgICAgIGV2ZW50c0NvdW50Kys7Ci0gICAgfTsKLQotICAgIGVuYWJsZUxheWVyVHJlZUFn
ZW50KCk7Ci0KLSAgICBmdW5jdGlvbiBlbmFibGVMYXllclRyZWVBZ2VudChyZXN1bHQpCi0gICAg
ewotICAgICAgICBzdGVwKHsKLSAgICAgICAgICAgIG5hbWU6ICJFbmFibGUgdGhlIExheWVyVHJl
ZSBhZ2VudCIsCi0gICAgICAgICAgICBjb21tYW5kOiAiTGF5ZXJUcmVlLmVuYWJsZSIsCi0gICAg
ICAgICAgICBwYXJhbWV0ZXJzOiB7fSwKLSAgICAgICAgICAgIGNhbGxiYWNrOiBnZXREb2N1bWVu
dAotICAgICAgICB9KTsKLSAgICB9OwotICAgIAotICAgIGZ1bmN0aW9uIGdldERvY3VtZW50KHJl
c3VsdCkKLSAgICB7Ci0gICAgICAgIHN0ZXAoewotICAgICAgICAgICAgbmFtZTogIkdldCB0aGUg
RG9jdW1lbnQiLAotICAgICAgICAgICAgY29tbWFuZDogIkRPTS5nZXREb2N1bWVudCIsCi0gICAg
ICAgICAgICBwYXJhbWV0ZXJzOiB7fSwKLSAgICAgICAgICAgIGNhbGxiYWNrOiBnZXRJbml0aWFs
TGF5ZXJUcmVlCi0gICAgICAgIH0pOwotICAgIH07Ci0gICAgCi0gICAgZnVuY3Rpb24gZ2V0SW5p
dGlhbExheWVyVHJlZShyZXN1bHQpCi0gICAgewotICAgICAgICBkb2N1bWVudE5vZGUgPSByZXN1
bHQucm9vdDsKLSAgICAgICAgc3RlcCh7Ci0gICAgICAgICAgICBuYW1lOiAiR2V0IHRoZSBpbml0
aWFsIGxheWVyIHRyZWUiLAotICAgICAgICAgICAgY29tbWFuZDogIkxheWVyVHJlZS5sYXllcnNG
b3JOb2RlIiwKLSAgICAgICAgICAgIHBhcmFtZXRlcnM6IHsibm9kZUlkIjogZG9jdW1lbnROb2Rl
Lm5vZGVJZH0sCi0gICAgICAgICAgICBjYWxsYmFjazogZ290SW5pdGlhbExheWVyVHJlZQotICAg
ICAgICB9KTsKLSAgICB9OwotCi0gICAgZnVuY3Rpb24gZ290SW5pdGlhbExheWVyVHJlZShyZXN1
bHQpCi0gICAgewotICAgICAgICBpbml0aWFsTGF5ZXJzID0gcmVzdWx0LmxheWVyczsKLQotICAg
ICAgICBkdW1wTGF5ZXJzKGluaXRpYWxMYXllcnMpOwotCi0gICAgICAgIHN0ZXAoewotICAgICAg
ICAgICAgbmFtZTogIk1lc3NhZ2UgdGhlIHBhZ2UgdG8gYWRkIGEgbmV3IGNvbXBvc2l0ZWQgbGF5
ZXIiLAotICAgICAgICAgICAgY29tbWFuZDogIlJ1bnRpbWUuZXZhbHVhdGUiLAotICAgICAgICAg
ICAgcGFyYW1ldGVyczogeyJleHByZXNzaW9uIjogImFkZENvbXBvc2l0ZWRMYXllcigpIn0sCi0g
ICAgICAgICAgICBjYWxsYmFjazogZ2V0TW9kaWZpZWRMYXllclRyZWUKLSAgICAgICAgfSk7Ci0g
ICAgfTsKLQotICAgIGZ1bmN0aW9uIGdldE1vZGlmaWVkTGF5ZXJUcmVlKHJlc3VsdCkKLSAgICB7
Ci0gICAgICAgIHN0ZXAoewotICAgICAgICAgICAgbmFtZTogIkdldCB0aGUgbW9kaWZpZWQgbGF5
ZXIgdHJlZSIsCi0gICAgICAgICAgICBjb21tYW5kOiAiTGF5ZXJUcmVlLmxheWVyc0Zvck5vZGUi
LAotICAgICAgICAgICAgcGFyYW1ldGVyczogeyJub2RlSWQiOiBkb2N1bWVudE5vZGUubm9kZUlk
fSwKLSAgICAgICAgICAgIGNhbGxiYWNrOiBnb3RNb2RpZmllZExheWVyVHJlZQotICAgICAgICB9
KTsKLSAgICB9OwotCi0gICAgdmFyIGxheWVyQ291bnQgPSAwOwotCi0gICAgZnVuY3Rpb24gZ290
TW9kaWZpZWRMYXllclRyZWUocmVzdWx0KQotICAgIHsKLSAgICAgICAgZHVtcExheWVycyhyZXN1
bHQubGF5ZXJzKTsKLQotICAgICAgICB2YXIgbXV0YXRpb25zID0gbGF5ZXJNdXRhdGlvbnMoaW5p
dGlhbExheWVycywgcmVzdWx0LmxheWVycyk7Ci0gICAgICAgIHZhciBuZXdMYXllciA9IG11dGF0
aW9ucy5hZGRpdGlvbnNbMF07Ci0KLSAgICAgICAgc3RlcCh7Ci0gICAgICAgICAgICBuYW1lOiAi
R2V0IGF0dHJpYnV0ZXMgZm9yIHRoZSBuZXdseSBpbnNlcnRlZCBub2RlIiwKLSAgICAgICAgICAg
IGNvbW1hbmQ6ICJET00uZ2V0QXR0cmlidXRlcyIsCi0gICAgICAgICAgICBwYXJhbWV0ZXJzOiB7
Im5vZGVJZCI6IG5ld0xheWVyLm5vZGVJZH0sCi0gICAgICAgICAgICBjYWxsYmFjazogZ290Tm9k
ZUF0dHJpYnV0ZXMKLSAgICAgICAgfSk7Ci0gICAgfTsKLQotICAgIGZ1bmN0aW9uIGdvdE5vZGVB
dHRyaWJ1dGVzKHJlc3VsdCkKLSAgICB7Ci0gICAgICAgIHZhciBhdHRyaWJ1dGVzID0gYXR0cmli
dXRlc0RpY3Rpb25hcnlGcm9tQXJyYXkocmVzdWx0LmF0dHJpYnV0ZXMpOwotICAgICAgICBpZiAo
YXR0cmlidXRlcy5pZCAhPT0gImxhc3QtZWxlbWVudCIpCi0gICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiRkFJTDogRGlkIG5vdCBvYnRhaW4gdGhlIGV4cGVjdGVkIGVsZW1lbnQgZm9yIHRo
ZSBsYXN0IGluc2VydGVkIGxheWVyLiIpOwotCi0gICAgICAgIGZpbmlzaFRlc3QoKTsKLSAgICB9
OwotCi0gICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpCi0gICAgewotICAgICAgICBpZiAoIWV2ZW50
c0NvdW50KQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6IERpZCBub3QgcmVj
ZWl2ZSBsYXllclRyZWVEaWRDaGFuZ2UgZXZlbnRzLiIpOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiXG49PT0gVGVzdCBjb21wbGV0ZSwgYWxsIGV4cGVjdGVk
IGNvbmRpdGlvbnMgbWV0ID09PSIpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7Ci0gICAgfTsKLQotICAgIGZ1bmN0aW9uIGxheWVyTXV0YXRpb25zKG9sZExheWVycywg
bmV3TGF5ZXJzKQotICAgIHsKLSAgICAgICAgZnVuY3Rpb24gbGF5ZXJJZE1hcChsYXllcikgewot
ICAgICAgICAgICAgcmV0dXJuIGxheWVyLmxheWVySWQ7Ci0gICAgICAgIH0KLQotICAgICAgICB2
YXIgb2xkTGF5ZXJJZHMgPSBvbGRMYXllcnMubWFwKGxheWVySWRNYXApOwotICAgICAgICB2YXIg
bmV3TGF5ZXJJZHMgPSBuZXdMYXllcnMubWFwKGxheWVySWRNYXApOwotCi0gICAgICAgIHJldHVy
biB7Ci0gICAgICAgICAgICBhZGRpdGlvbnM6IG5ld0xheWVycy5maWx0ZXIoZnVuY3Rpb24gKGxh
eWVyKSB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIChvbGRMYXllcklkcy5pbmRleE9mKGxheWVy
LmxheWVySWQpID09PSAtMSk7Ci0gICAgICAgICAgICB9KSwKLSAgICAgICAgICAgIHJlbW92YWxz
OiBvbGRMYXllcnMuZmlsdGVyKGZ1bmN0aW9uIChsYXllcikgewotICAgICAgICAgICAgICAgIHJl
dHVybiAobmV3TGF5ZXJJZHMuaW5kZXhPZihsYXllci5sYXllcklkKSA9PT0gLTEpOwotICAgICAg
ICAgICAgfSkKLSAgICAgICAgfTsKLSAgICB9OwotCi0gICAgZnVuY3Rpb24gYXR0cmlidXRlc0Rp
Y3Rpb25hcnlGcm9tQXJyYXkoYXR0cmlidXRlcykKLSAgICB7Ci0gICAgICAgIHZhciBkaWN0aW9u
YXJ5ID0ge30KLSAgICAgICAgZm9yICh2YXIgaSA9IDAsIGNvdW50ID0gYXR0cmlidXRlcy5sZW5n
dGg7IGkgPCBjb3VudDsgaSArPSAyKSB7Ci0gICAgICAgICAgICBkaWN0aW9uYXJ5W2F0dHJpYnV0
ZXNbaV1dID0gYXR0cmlidXRlc1tpICsgMV07Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGRp
Y3Rpb25hcnk7Ci0gICAgfTsKLQotICAgIGZ1bmN0aW9uIGR1bXBMYXllcnMobGF5ZXJzKQotICAg
IHsKLSAgICAgICAgZnVuY3Rpb24gcmVwbGFjZXIoa2V5LCB2YWx1ZSkKLSAgICAgICAgewotICAg
ICAgICAgICAgaWYgKGtleSA9PT0gImxheWVySWQiIHx8IGtleSA9PT0gIm5vZGVJZCIgfHwga2V5
ID09PSAibWVtb3J5IiB8fCBrZXkgPT09ICJwYWludENvdW50IikKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gdHlwZW9mKHZhbHVlKTsKLQotICAgICAgICAgICAgLy8gc29tZSB2YWx1ZXMgZGlmZmVy
IGJhc2VkIG9uIHBvcnQsIGJ1dCB0aGUgb25lcyB3ZSBtb3N0Ci0gICAgICAgICAgICAvLyBjYXJl
IGFib3V0IHdpbGwgYWx3YXlzIGJlIGxlc3Mgb3IgZXF1YWwgMTAwLgotICAgICAgICAgICAgaWYg
KChrZXkgPT09ICJ3aWR0aCIgfHwga2V5ID09PSAiaGVpZ2h0IikgJiYgdmFsdWUgPiAxMDApIAot
ICAgICAgICAgICAgICAgIHJldHVybiB0eXBlb2YodmFsdWUpOwotICAgICAgICAgICAgCi0gICAg
ICAgICAgICByZXR1cm4gdmFsdWU7Ci0gICAgICAgIH07Ci0gICAgICAgIAotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiXG4iICsgSlNPTi5zdHJpbmdpZnkobGF5ZXJzLCByZXBsYWNlciwgIiAg
ICAiKSk7Ci0gICAgfTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAodGVzdCkKLSAgICB7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJcbj09PSAiICsgdGVzdC5uYW1lICsgIiA9PT1cbiIpCi0gICAg
ICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQodGVzdC5jb21tYW5kLCB0ZXN0LnBhcmFtZXRl
cnMsIGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKLSAgICAgICAgICAgIGlmIChtZXNzYWdlT2Jq
ZWN0Lmhhc093blByb3BlcnR5KCJlcnJvciIpKSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIkZBSUw6ICIgKyBtZXNzYWdlT2JqZWN0LmVycm9yLm1lc3NhZ2UgKyAiICgiICsg
bWVzc2FnZU9iamVjdC5lcnJvci5jb2RlICsgIikiKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1MiKTsKLSAgICAgICAg
ICAgIHRlc3QuY2FsbGJhY2sobWVzc2FnZU9iamVjdC5yZXN1bHQpOwotICAgICAgICB9KTsKLSAg
ICB9OwotCi0gICAgZnVuY3Rpb24gYXNzZXJ0KG5hbWUsIGFjdHVhbCwgZXhwZWN0ZWQpCi0gICAg
ewotICAgICAgICBpZiAoZXhwZWN0ZWQgPT09IGFjdHVhbCkKLSAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJQQVNTOiAiICsgbmFtZSArICIuIik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiAiICsgbmFtZSArICIuIEV4cGVjdGVkICIgKyBl
eHBlY3RlZCArICIgYnV0IGdvdCAiICsgYWN0dWFsKTsKLSAgICB9OwotCi19OwotCi13aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uICgpIHsKLSAgICBy
dW5UZXN0KCk7Ci19LCBmYWxzZSk7Ci0KLTwvc2NyaXB0PgotPHN0eWxlIHR5cGU9InRleHQvY3Nz
Ij4KLSAgICAgIAotICAgIGRpdiB7Ci0gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICAg
ICAgdG9wOiAwOwotICAgICAgICBsZWZ0OiAwOwotICAgIH0KLSAgICAgIAotICAgIC5yZWd1bGFy
IHsKLSAgICAgICAgd2lkdGg6IDEwMHB4OwotICAgICAgICBoZWlnaHQ6IDEwMHB4OwotICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsKLSAgICB9Ci0KLSAgICAuY29tcG9zaXRlZCB7Ci0g
ICAgICAgIHRvcDogMjVweDsKLSAgICAgICAgbGVmdDogMjVweDsKLSAgICAgICAgd2lkdGg6IDUw
cHg7Ci0gICAgICAgIGhlaWdodDogNTBweDsKLSAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1
ZTsKLSAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7Ci0gICAgfQotICAg
ICAgCi0gICAgLm9mZnNldCB7Ci0gICAgICAgIGxlZnQ6IDIwMHB4OwotICAgICAgICAtd2Via2l0
LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsKLSAgICB9Ci0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08
Ym9keT4KLQotICAgIDxkaXYgY2xhc3M9InJlZ3VsYXIiPjwvZGl2PgotCi0gICAgPGRpdiBjbGFz
cz0iY29tcG9zaXRlZCI+Ci0gICAgICAgIDxkaXYgY2xhc3M9ImNvbXBvc2l0ZWQiPjwvZGl2Pgot
ICAgIDwvZGl2PgotCi0gICAgPGRpdiBjbGFzcz0icmVndWxhciBvZmZzZXQiPgotICAgICAgICA8
ZGl2IGNsYXNzPSJjb21wb3NpdGVkIj48L2Rpdj4KLSAgICA8L2Rpdj4KLQotPC9ib2R5PgotPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2xheWVycy9s
YXllcnMtZ2VuZXJhdGVkLWNvbnRlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL2xheWVycy9sYXllcnMtZ2VuZXJhdGVkLWNvbnRlbnQtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYzNjNzI5MDc5MTViYjQ4MzMzZjAzYjEw
YjYwNTc3NmM3NDI2MGUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9sYXllcnMvbGF5ZXJzLWdlbmVy
YXRlZC1jb250ZW50LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAK
LQotPT09IEVuYWJsZSB0aGUgTGF5ZXJUcmVlIGFnZW50ID09PQotCi1QQVNTCi0KLT09PSBHZXQg
dGhlIERvY3VtZW50ID09PQotCi1QQVNTCi0KLT09PSBHZXQgdGhlIGxheWVyIHRyZWUgPT09Ci0K
LVBBU1MKLQotPT09IENoZWNrIGxheWVycyA9PT0KLQotUEFTUzogRXhwZWN0ZWQgbnVtYmVyIG9m
IDo6YmVmb3JlIGxheWVycy4KLVBBU1M6IFRoZSBzb2xlIDo6YmVmb3JlIGxheWVyIGhhcyBhIHBz
ZXVkbyBlbGVtZW50LgotUEFTUzogRXhwZWN0ZWQgbnVtYmVyIG9mIDo6YWZ0ZXIgbGF5ZXJzLgot
UEFTUzogVGhlIGZpcnN0IDo6YWZ0ZXIgbGF5ZXIgaGFzIGEgcHNldWRvIGVsZW1lbnQuCi1QQVNT
OiBUaGUgc2Vjb25kIDo6YWZ0ZXIgbGF5ZXIgaGFzIGEgcHNldWRvIGVsZW1lbnQuCi1QQVNTOiBU
aGUgc2Vjb25kIDo6YWZ0ZXIgbGF5ZXIgaXMgYSByZWZsZWN0aW9uLgotUEFTUzogVGhlIHR3byA6
OmFmdGVyIGxheWVycyBoYXZlIHRoZSBzYW1lIG5vZGUgaWQuCi1QQVNTOiBUaGUgdHdvIDo6YWZ0
ZXIgbGF5ZXJzIGhhdmUgdGhlIHNhbWUgcHNldWRvIGVsZW1lbnQgaWQuCi1QQVNTOiBUaGUgbm9u
LXJlZmxlY3Rpb24gZ2VuZXJhdGVkIGdlbmVyYXRlZCBsYXllcnMgaGF2ZSB0aGUgc2FtZSBub2Rl
IGlkLgotUEFTUzogVGhlIG5vbi1yZWZsZWN0aW9uIGdlbmVyYXRlZCBsYXllcnMgaGF2ZSBkaWZm
ZXJlbnQgcHNldWRvIGVsZW1lbnQgaWRzLgotCi09PT0gQ2hlY2sgZ2VuZXJhdGluZyBub2RlID09
PQotCi1QQVNTOiBHZW5lcmF0aW5nIG5vZGUgd2FzIGZvdW5kLgotUEFTUzogR2VuZXJhdGluZyBu
b2RlIGhhcyBleHBlY3RlZCBsb2NhbE5hbWUuCi1QQVNTOiBHZW5lcmF0aW5nIG5vZGUgaGFzIGlk
LgotUEFTUzogR2VuZXJhdGluZyBub2RlIGhhcyBleHBlY3RlZCBpZC4KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2xheWVycy9sYXllcnMtZ2VuZXJhdGVkLWNv
bnRlbnQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9sYXllcnMvbGF5ZXJz
LWdlbmVyYXRlZC1jb250ZW50Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3
MDljZTM1NzNkNDg3ZmUwZWEwOWI4ZDk0YWZlYmI5YWI1NDM2OGMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL2xheWVycy9sYXllcnMtZ2VuZXJhdGVkLWNvbnRlbnQuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDE2NiArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29s
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotCi1m
dW5jdGlvbiB0ZXN0KCkKLXsKLQotICAgIHZhciBub2RlczsKLSAKLSAgICBJbnNwZWN0b3JUZXN0
LmV2ZW50SGFuZGxlclsiRE9NLnNldENoaWxkTm9kZXMiXSA9IHNldENoaWxkTm9kZXM7Ci0KLSAg
ICBlbmFibGVMYXllclRyZWVBZ2VudCgpOwotICAgIAotICAgIGZ1bmN0aW9uIGVuYWJsZUxheWVy
VHJlZUFnZW50KHJlc3VsdCkKLSAgICB7Ci0gICAgICAgIHN0ZXAoewotICAgICAgICAgICAgbmFt
ZTogIkVuYWJsZSB0aGUgTGF5ZXJUcmVlIGFnZW50IiwKLSAgICAgICAgICAgIGNvbW1hbmQ6ICJM
YXllclRyZWUuZW5hYmxlIiwKLSAgICAgICAgICAgIHBhcmFtZXRlcnM6IHt9LAotICAgICAgICAg
ICAgY2FsbGJhY2s6IGdldERvY3VtZW50Ci0gICAgICAgIH0pOwotICAgIH07Ci0KLSAgICBmdW5j
dGlvbiBnZXREb2N1bWVudCgpCi0gICAgewotICAgICAgICAvLyBXZSBtdXN0IGZpcnN0IGdldCB0
aGUgZG9jdW1lbnQgc28gdGhhdCBsYXRlciBvbiB3ZSBtYXkgZ2V0IHNlbnNpYmxlIG5vZGVJZHMu
Ci0gICAgICAgIHN0ZXAoewotICAgICAgICAgICAgbmFtZTogIkdldCB0aGUgRG9jdW1lbnQiLAot
ICAgICAgICAgICAgY29tbWFuZDogIkRPTS5nZXREb2N1bWVudCIsCi0gICAgICAgICAgICBwYXJh
bWV0ZXJzOiB7fSwKLSAgICAgICAgICAgIGNhbGxiYWNrOiBnZXRMYXllclRyZWUKLSAgICAgICAg
fSk7Ci0gICAgfTsKLQotICAgIGZ1bmN0aW9uIGdldExheWVyVHJlZShyZXN1bHQpCi0gICAgewot
ICAgICAgICBzdGVwKHsKLSAgICAgICAgICAgIG5hbWU6ICJHZXQgdGhlIGxheWVyIHRyZWUiLAot
ICAgICAgICAgICAgY29tbWFuZDogIkxheWVyVHJlZS5sYXllcnNGb3JOb2RlIiwKLSAgICAgICAg
ICAgIHBhcmFtZXRlcnM6IHsibm9kZUlkIjogcmVzdWx0LnJvb3Qubm9kZUlkfSwKLSAgICAgICAg
ICAgIGNhbGxiYWNrOiBnb3RMYXllclRyZWUKLSAgICAgICAgfSk7Ci0gICAgfTsKLQotICAgIGZ1
bmN0aW9uIGdvdExheWVyVHJlZShyZXN1bHQpCi0gICAgewotICAgICAgICB2YXIgYmVmb3JlTGF5
ZXJzID0gW107Ci0gICAgICAgIHZhciBhZnRlckxheWVycyA9IFtdOwotICAgICAgICByZXN1bHQu
bGF5ZXJzLmZvckVhY2goZnVuY3Rpb24gKGxheWVyKSB7Ci0gICAgICAgICAgICBpZiAoIWxheWVy
LmlzR2VuZXJhdGVkQ29udGVudCkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
ICAgIGlmIChsYXllci5wc2V1ZG9FbGVtZW50ID09PSAiYmVmb3JlIikKLSAgICAgICAgICAgICAg
ICBiZWZvcmVMYXllcnMucHVzaChsYXllcik7Ci0gICAgICAgICAgICBpZiAobGF5ZXIucHNldWRv
RWxlbWVudCA9PT0gImFmdGVyIikKLSAgICAgICAgICAgICAgICBhZnRlckxheWVycy5wdXNoKGxh
eWVyKTsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAgbG9nVGVzdE5hbWUoIkNoZWNrIGxheWVycyIp
OwotCi0gICAgICAgIGFzc2VydCgiRXhwZWN0ZWQgbnVtYmVyIG9mIDo6YmVmb3JlIGxheWVycyIs
IGJlZm9yZUxheWVycy5sZW5ndGgsIDEpOwotICAgICAgICBhc3NlcnQoIlRoZSBzb2xlIDo6YmVm
b3JlIGxheWVyIGhhcyBhIHBzZXVkbyBlbGVtZW50IiwgYmVmb3JlTGF5ZXJzWzBdLnBzZXVkb0Vs
ZW1lbnRJZCAhPT0gIiIsIHRydWUpOwotCi0gICAgICAgIGFzc2VydCgiRXhwZWN0ZWQgbnVtYmVy
IG9mIDo6YWZ0ZXIgbGF5ZXJzIiwgYWZ0ZXJMYXllcnMubGVuZ3RoLCAyKTsKLSAgICAgICAgYXNz
ZXJ0KCJUaGUgZmlyc3QgOjphZnRlciBsYXllciBoYXMgYSBwc2V1ZG8gZWxlbWVudCIsIGFmdGVy
TGF5ZXJzWzBdLnBzZXVkb0VsZW1lbnRJZCAhPT0gIiIsIHRydWUpOwotICAgICAgICBhc3NlcnQo
IlRoZSBzZWNvbmQgOjphZnRlciBsYXllciBoYXMgYSBwc2V1ZG8gZWxlbWVudCIsIGFmdGVyTGF5
ZXJzWzFdLnBzZXVkb0VsZW1lbnRJZCAhPT0gIiIsIHRydWUpOwotICAgICAgICBhc3NlcnQoIlRo
ZSBzZWNvbmQgOjphZnRlciBsYXllciBpcyBhIHJlZmxlY3Rpb24iLCBhZnRlckxheWVyc1sxXS5p
c1JlZmxlY3Rpb24sIHRydWUpOwotICAgICAgICBhc3NlcnQoIlRoZSB0d28gOjphZnRlciBsYXll
cnMgaGF2ZSB0aGUgc2FtZSBub2RlIGlkIiwgYWZ0ZXJMYXllcnNbMF0ubm9kZUlkLCBhZnRlckxh
eWVyc1sxXS5ub2RlSWQpOwotICAgICAgICBhc3NlcnQoIlRoZSB0d28gOjphZnRlciBsYXllcnMg
aGF2ZSB0aGUgc2FtZSBwc2V1ZG8gZWxlbWVudCBpZCIsIGFmdGVyTGF5ZXJzWzBdLnBzZXVkb0Vs
ZW1lbnRJZCwgYWZ0ZXJMYXllcnNbMV0ucHNldWRvRWxlbWVudElkKTsKLQotICAgICAgICBhc3Nl
cnQoIlRoZSBub24tcmVmbGVjdGlvbiBnZW5lcmF0ZWQgZ2VuZXJhdGVkIGxheWVycyBoYXZlIHRo
ZSBzYW1lIG5vZGUgaWQiLCBiZWZvcmVMYXllcnNbMF0ubm9kZUlkLCBhZnRlckxheWVyc1swXS5u
b2RlSWQpOwotICAgICAgICBhc3NlcnQoIlRoZSBub24tcmVmbGVjdGlvbiBnZW5lcmF0ZWQgbGF5
ZXJzIGhhdmUgZGlmZmVyZW50IHBzZXVkbyBlbGVtZW50IGlkcyIsIGJlZm9yZUxheWVyc1swXS5w
c2V1ZG9FbGVtZW50SWQgIT09IGFmdGVyTGF5ZXJzWzBdLnBzZXVkb0VsZW1lbnRJZCwgdHJ1ZSk7
Ci0KLSAgICAgICAgdmFyIG5vZGU7Ci0gICAgICAgIHZhciBub2RlSWQgPSBiZWZvcmVMYXllcnNb
MF0ubm9kZUlkOwotICAgICAgICBmb3IgKHZhciBpID0gMCwgY291bnQgPSBub2Rlcy5sZW5ndGg7
IGkgPCBjb3VudDsgKytpKSB7Ci0gICAgICAgICAgICBpZiAobm9kZXNbaV0ubm9kZUlkID09PSBu
b2RlSWQpIHsKLSAgICAgICAgICAgICAgICBub2RlID0gbm9kZXNbaV07Ci0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBsb2dUZXN0TmFt
ZSgiQ2hlY2sgZ2VuZXJhdGluZyBub2RlIik7Ci0gICAgICAgIAotICAgICAgICBhc3NlcnQoIkdl
bmVyYXRpbmcgbm9kZSB3YXMgZm91bmQiLCAhIW5vZGUsIHRydWUpOwotICAgICAgICBhc3NlcnQo
IkdlbmVyYXRpbmcgbm9kZSBoYXMgZXhwZWN0ZWQgbG9jYWxOYW1lIiwgbm9kZS5sb2NhbE5hbWUs
ICJkaXYiKTsKLSAgICAgICAgYXNzZXJ0KCJHZW5lcmF0aW5nIG5vZGUgaGFzIGlkIiwgbm9kZS5h
dHRyaWJ1dGVzWzBdLCAiaWQiKTsKLSAgICAgICAgYXNzZXJ0KCJHZW5lcmF0aW5nIG5vZGUgaGFz
IGV4cGVjdGVkIGlkIiwgbm9kZS5hdHRyaWJ1dGVzWzFdLCAiZ2VuZXJhdG9yIik7Ci0gICAgICAg
IAotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH07Ci0KLSAgICBm
dW5jdGlvbiBzZXRDaGlsZE5vZGVzIChtZXNzYWdlT2JqZWN0KSB7Ci0gICAgICAgIG5vZGVzID0g
bWVzc2FnZU9iamVjdC5wYXJhbXMubm9kZXM7Ci0gICAgfTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAo
dGVzdCkKLSAgICB7Ci0gICAgICAgIGlmICh0ZXN0LmNhbGxiYWNrKQotICAgICAgICAgICAgbG9n
VGVzdE5hbWUodGVzdC5uYW1lKTsKLSAgICAgICAgcnVuQ29tbWFuZCh0ZXN0KTsKLSAgICB9Owot
Ci0gICAgZnVuY3Rpb24gbG9nVGVzdE5hbWUobmFtZSkKLSAgICB7Ci0gICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJcbj09PSAiICsgbmFtZSArICIgPT09XG4iKTsKLSAgICB9OwotCi0gICAgZnVu
Y3Rpb24gcnVuQ29tbWFuZChjb21tYW5kKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZChjb21tYW5kLmNvbW1hbmQsIGNvbW1hbmQucGFyYW1ldGVycywgZnVuY3Rpb24o
bWVzc2FnZU9iamVjdCkgewotICAgICAgICAgICAgaWYgKG1lc3NhZ2VPYmplY3QuaGFzT3duUHJv
cGVydHkoImVycm9yIikpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJ
TDogIiArIG1lc3NhZ2VPYmplY3QuZXJyb3IubWVzc2FnZSArICIgKCIgKyBtZXNzYWdlT2JqZWN0
LmVycm9yLmNvZGUgKyAiKSIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxl
dGVUZXN0KCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBpZiAoY29tbWFuZC5uYW1lKQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJQQVNTIik7Ci0KLSAgICAgICAgICAgIGlmIChjb21tYW5kLmNhbGxiYWNrKQotICAgICAg
ICAgICAgICAgIGNvbW1hbmQuY2FsbGJhY2sobWVzc2FnZU9iamVjdC5yZXN1bHQpOwotICAgICAg
ICB9KTsKLSAgICB9OwotCi0gICAgZnVuY3Rpb24gYXNzZXJ0KG5hbWUsIGFjdHVhbCwgZXhwZWN0
ZWQpCi0gICAgewotICAgICAgICBpZiAoZXhwZWN0ZWQgPT09IGFjdHVhbCkKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiAiICsgbmFtZSArICIuIik7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiAiICsgbmFtZSArICIuIEV4cGVj
dGVkICIgKyBleHBlY3RlZCArICIgYnV0IGdvdCAiICsgYWN0dWFsKTsKLSAgICB9OwotCi19Owot
Ci13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uKCkK
LXsKLSAgICBydW5UZXN0KCk7Ci19LCBmYWxzZSk7Ci0KLTwvc2NyaXB0PgotPHN0eWxlIHR5cGU9
InRleHQvY3NzIj4KLSAgICAgIAotICAgICNnZW5lcmF0b3I6OmJlZm9yZSwKLSAgICAjZ2VuZXJh
dG9yOjphZnRlciB7Ci0gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICAgICAgd2lkdGg6
IDEwMHB4OwotICAgICAgICBoZWlnaHQ6IDEwMHB4OwotICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiBibGFjazsKLSAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7Ci0gICAg
ICAgIGNvbnRlbnQ6ICIiOwotICAgIH0KLQotICAgICNnZW5lcmF0b3I6OmFmdGVyIHsKLSAgICAg
ICAgLXdlYmtpdC1ib3gtcmVmbGVjdDpiZWxvdyAxcHggLXdlYmtpdC1ncmFkaWVudChsaW5lYXIs
IGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgZnJvbSh0cmFuc3BhcmVudCksIGNvbG9yLXN0b3AoMC41
LCB0cmFuc3BhcmVudCksIHRvKHdoaXRlKSk7Ci0gICAgfQotCi08L3N0eWxlPgotPC9oZWFkPgot
PGJvZHk+Ci0KLSAgICA8ZGl2IGlkPSJnZW5lcmF0b3IiPjwvZGl2PgotCi08L2JvZHk+Ci08L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbGF5ZXJzL2xh
eWVycy1yZWZsZWN0ZWQtY29udGVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvbGF5ZXJzL2xheWVycy1yZWZsZWN0ZWQtY29udGVudC1leHBlY3RlZC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1ZDg5MDkwMTI2NDQ3MmE5ZTY3M2RhMjRk
MDU1NmFkOWJiMDFhYzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2xheWVycy9sYXllcnMtcmVmbGVj
dGVkLWNvbnRlbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAot
Ci09PT0gRW5hYmxlIHRoZSBMYXllclRyZWUgYWdlbnQgPT09Ci0KLVBBU1MKLQotPT09IEdldCB0
aGUgRG9jdW1lbnQgPT09Ci0KLVBBU1MKLQotPT09IEdldCB0aGUgbGF5ZXIgdHJlZSA9PT0KLQot
UEFTUwotCi09PT0gQ2hlY2sgbGF5ZXJzID09PQotCi1QQVNTOiBFeHBlY3RlZCBudW1iZXIgb2Yg
cmVmbGVjdGVkIGxheWVycy4KLVBBU1M6IEZpcnN0IHJlZmxlY3RlZCBsYXllciBoYXMgYSBub2Rl
LgotCi09PT0gQ2hlY2sgcmVmbGVjdGVkIG5vZGUgPT09Ci0KLVBBU1M6IE5vZGUgZm9yIGxheWVy
IHdhcyBmb3VuZC4KLVBBU1M6IE5vZGUgaGFzIGV4cGVjdGVkIGxvY2FsTmFtZS4KLVBBU1M6IE5v
ZGUgaGFzIGV4cGVjdGVkIG51bWJlciBvZiBhdHRyaWJ1dGVzLgotUEFTUzogTm9kZSBoYXMgQ1NT
IGNsYXNzLgotUEFTUzogTm9kZSBoYXMgZXhwZWN0ZWQgQ1NTIGNsYXNzLgotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbGF5ZXJzL2xheWVycy1yZWZsZWN0ZWQt
Y29udGVudC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL2xheWVycy9sYXll
cnMtcmVmbGVjdGVkLWNvbnRlbnQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDMyMjA1OGI2NWE0NTAxNzZkZDA2NTZhNGVlNDY0MzBjYTg4YThiYS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvbGF5ZXJzL2xheWVycy1yZWZsZWN0ZWQtY29udGVudC5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsMTQ5ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9j
b2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0K
LWZ1bmN0aW9uIHRlc3QoKQotewotCi0gICAgdmFyIG5vZGVzOwotIAotICAgIEluc3BlY3RvclRl
c3QuZXZlbnRIYW5kbGVyWyJET00uc2V0Q2hpbGROb2RlcyJdID0gc2V0Q2hpbGROb2RlczsKLQot
ICAgIGVuYWJsZUxheWVyVHJlZUFnZW50KCk7Ci0gICAgCi0gICAgZnVuY3Rpb24gZW5hYmxlTGF5
ZXJUcmVlQWdlbnQocmVzdWx0KQotICAgIHsKLSAgICAgICAgc3RlcCh7Ci0gICAgICAgICAgICBu
YW1lOiAiRW5hYmxlIHRoZSBMYXllclRyZWUgYWdlbnQiLAotICAgICAgICAgICAgY29tbWFuZDog
IkxheWVyVHJlZS5lbmFibGUiLAotICAgICAgICAgICAgcGFyYW1ldGVyczoge30sCi0gICAgICAg
ICAgICBjYWxsYmFjazogZ2V0RG9jdW1lbnQKLSAgICAgICAgfSk7Ci0gICAgfTsKLQotICAgIGZ1
bmN0aW9uIGdldERvY3VtZW50KCkKLSAgICB7Ci0gICAgICAgIC8vIFdlIG11c3QgZmlyc3QgZ2V0
IHRoZSBkb2N1bWVudCBzbyB0aGF0IGxhdGVyIG9uIHdlIG1heSBnZXQgc2Vuc2libGUgbm9kZUlk
cy4KLSAgICAgICAgc3RlcCh7Ci0gICAgICAgICAgICBuYW1lOiAiR2V0IHRoZSBEb2N1bWVudCIs
Ci0gICAgICAgICAgICBjb21tYW5kOiAiRE9NLmdldERvY3VtZW50IiwKLSAgICAgICAgICAgIHBh
cmFtZXRlcnM6IHt9LAotICAgICAgICAgICAgY2FsbGJhY2s6IGdldExheWVyVHJlZQotICAgICAg
ICB9KTsKLSAgICB9OwotCi0gICAgZnVuY3Rpb24gZ2V0TGF5ZXJUcmVlKHJlc3VsdCkKLSAgICB7
Ci0gICAgICAgIHN0ZXAoewotICAgICAgICAgICAgbmFtZTogIkdldCB0aGUgbGF5ZXIgdHJlZSIs
Ci0gICAgICAgICAgICBjb21tYW5kOiAiTGF5ZXJUcmVlLmxheWVyc0Zvck5vZGUiLAotICAgICAg
ICAgICAgcGFyYW1ldGVyczogeyJub2RlSWQiOiByZXN1bHQucm9vdC5ub2RlSWR9LAotICAgICAg
ICAgICAgY2FsbGJhY2s6IGdvdExheWVyVHJlZQotICAgICAgICB9KTsKLSAgICB9OwotCi0gICAg
ZnVuY3Rpb24gZ290TGF5ZXJUcmVlKHJlc3VsdCkKLSAgICB7Ci0gICAgICAgIHZhciByZWZsZWN0
ZWRMYXllcnMgPSByZXN1bHQubGF5ZXJzLmZpbHRlcihmdW5jdGlvbihsYXllcikgewotICAgICAg
ICAgICAgcmV0dXJuIGxheWVyLmlzUmVmbGVjdGlvbjsKLSAgICAgICAgfSk7Ci0KLSAgICAgICAg
bG9nVGVzdE5hbWUoIkNoZWNrIGxheWVycyIpOwotCi0gICAgICAgIGFzc2VydCgiRXhwZWN0ZWQg
bnVtYmVyIG9mIHJlZmxlY3RlZCBsYXllcnMiLCByZWZsZWN0ZWRMYXllcnMubGVuZ3RoLCAxKTsK
LSAgICAgICAgYXNzZXJ0KCJGaXJzdCByZWZsZWN0ZWQgbGF5ZXIgaGFzIGEgbm9kZSIsIHJlZmxl
Y3RlZExheWVyc1swXS5ub2RlSWQgPiAwLCB0cnVlKTsKLQotCi0gICAgICAgIGxvZ1Rlc3ROYW1l
KCJDaGVjayByZWZsZWN0ZWQgbm9kZSIpOwotCi0gICAgICAgIHZhciBub2RlOwotICAgICAgICB2
YXIgbm9kZUlkID0gcmVmbGVjdGVkTGF5ZXJzWzBdLm5vZGVJZDsKLSAgICAgICAgZm9yICh2YXIg
aSA9IDAsIGNvdW50ID0gbm9kZXMubGVuZ3RoOyBpIDwgY291bnQ7ICsraSkgewotICAgICAgICAg
ICAgaWYgKG5vZGVzW2ldLm5vZGVJZCA9PT0gbm9kZUlkKSB7Ci0gICAgICAgICAgICAgICAgbm9k
ZSA9IG5vZGVzW2ldOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAg
ICAgICB9Ci0KLSAgICAgICAgYXNzZXJ0KCJOb2RlIGZvciBsYXllciB3YXMgZm91bmQiLCAhIW5v
ZGUsIHRydWUpOwotICAgICAgICBhc3NlcnQoIk5vZGUgaGFzIGV4cGVjdGVkIGxvY2FsTmFtZSIs
IG5vZGUubG9jYWxOYW1lLCAiZGl2Iik7Ci0gICAgICAgIGFzc2VydCgiTm9kZSBoYXMgZXhwZWN0
ZWQgbnVtYmVyIG9mIGF0dHJpYnV0ZXMiLCBub2RlLmF0dHJpYnV0ZXMubGVuZ3RoLCAyKTsKLSAg
ICAgICAgYXNzZXJ0KCJOb2RlIGhhcyBDU1MgY2xhc3MiLCBub2RlLmF0dHJpYnV0ZXNbMF0sICJj
bGFzcyIpOwotICAgICAgICBhc3NlcnQoIk5vZGUgaGFzIGV4cGVjdGVkIENTUyBjbGFzcyIsIG5v
ZGUuYXR0cmlidXRlc1sxXSwgInJlZmxlY3RlZCBjb21wb3NpdGVkIik7Ci0gICAgICAgIAotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH07Ci0KLSAgICBmdW5jdGlv
biBzZXRDaGlsZE5vZGVzIChtZXNzYWdlT2JqZWN0KSB7Ci0gICAgICAgIG5vZGVzID0gbWVzc2Fn
ZU9iamVjdC5wYXJhbXMubm9kZXM7Ci0gICAgfTsKLQotICAgIGZ1bmN0aW9uIHN0ZXAodGVzdCkK
LSAgICB7Ci0gICAgICAgIGlmICh0ZXN0LmNhbGxiYWNrKQotICAgICAgICAgICAgbG9nVGVzdE5h
bWUodGVzdC5uYW1lKTsKLSAgICAgICAgcnVuQ29tbWFuZCh0ZXN0KTsKLSAgICB9OwotCi0gICAg
ZnVuY3Rpb24gbG9nVGVzdE5hbWUobmFtZSkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJcbj09PSAiICsgbmFtZSArICIgPT09XG4iKTsKLSAgICB9OwotCi0gICAgZnVuY3Rpb24g
cnVuQ29tbWFuZChjb21tYW5kKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZChjb21tYW5kLmNvbW1hbmQsIGNvbW1hbmQucGFyYW1ldGVycywgZnVuY3Rpb24obWVzc2Fn
ZU9iamVjdCkgewotICAgICAgICAgICAgaWYgKG1lc3NhZ2VPYmplY3QuaGFzT3duUHJvcGVydHko
ImVycm9yIikpIHsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDogIiAr
IG1lc3NhZ2VPYmplY3QuZXJyb3IubWVzc2FnZSArICIgKCIgKyBtZXNzYWdlT2JqZWN0LmVycm9y
LmNvZGUgKyAiKSIpOwotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0
KCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICBpZiAoY29tbWFuZC5uYW1lKQotICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQ
QVNTIik7Ci0KLSAgICAgICAgICAgIGlmIChjb21tYW5kLmNhbGxiYWNrKQotICAgICAgICAgICAg
ICAgIGNvbW1hbmQuY2FsbGJhY2sobWVzc2FnZU9iamVjdC5yZXN1bHQpOwotICAgICAgICB9KTsK
LSAgICB9OwotCi0gICAgZnVuY3Rpb24gYXNzZXJ0KG5hbWUsIGFjdHVhbCwgZXhwZWN0ZWQpCi0g
ICAgewotICAgICAgICBpZiAoZXhwZWN0ZWQgPT09IGFjdHVhbCkKLSAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJQQVNTOiAiICsgbmFtZSArICIuIik7Ci0gICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiAiICsgbmFtZSArICIuIEV4cGVjdGVkICIg
KyBleHBlY3RlZCArICIgYnV0IGdvdCAiICsgYWN0dWFsKTsKLSAgICB9OwotCi19OwotCi13aW5k
b3cuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uKCkKLXsKLSAg
ICBydW5UZXN0KCk7Ci19LCBmYWxzZSk7Ci0KLTwvc2NyaXB0PgotPHN0eWxlIHR5cGU9InRleHQv
Y3NzIj4KLQotICAgIC5yZWZsZWN0ZWQgewotICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0g
ICAgICAgIHdpZHRoOiAxMDBweDsKLSAgICAgICAgaGVpZ2h0OiAxMDBweDsKLSAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogYmxhY2s7Ci0gICAgICAgIC13ZWJraXQtYm94LXJlZmxlY3Q6IGJlbG93
OwotICAgIH0KLQotICAgIC5jb21wb3NpdGVkIHsKLSAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06
IHRyYW5zbGF0ZVooMCk7Ci0gICAgfQotCi08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci0KLSAg
ICA8ZGl2IGNsYXNzPSJyZWZsZWN0ZWQiPjwvZGl2PgotICAgIDxkaXYgY2xhc3M9InJlZmxlY3Rl
ZCBjb21wb3NpdGVkIj48L2Rpdj4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvYXJjaGl2ZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9hcmNoaXZlLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTc3MjNkZjAyZjQ5ZmI5ZjVjNGYxMDZlZTI4
ZjRkYWUyZWYyZTQ2My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9hcmNoaXZlLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAsMCBAQAotUEFTUzogUmVjZWl2ZWQgYXJjaGl2
ZSBkYXRhLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFn
ZS9hcmNoaXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9hcmNo
aXZlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhZWRmM2Q2NDE4Y2VmYWEz
MzA3NWRiZGI4YjU3MzYwN2JlNTczZmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvYXJjaGl2
ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1mdW5j
dGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJQYWdlLmVuYWJs
ZSIsIHt9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJQYWdlLmFyY2hpdmUiLCB7
fSwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgdmFyIGRhdGEgPSBldmVudC5yZXN1bHQuZGF0
YTsKLSAgICAgICAgaWYgKCFkYXRhKQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZB
SUw6IG5vIGRhdGEiKTsKLSAgICAgICAgZWxzZSBpZiAoZGF0YS5sZW5ndGggPCAxMDAwKQotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6IHVuZXhwZWN0ZWRseSBzaG9ydCBkYXRh
LiBBIHNlcmlhbGl6ZWQgYXJjaGl2ZSBzaG91bGQgYmUgcHJldHR5IGxhcmdlLiIpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogUmVjZWl2ZWQgYXJj
aGl2ZSBkYXRhLiIpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0g
ICAgfSk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9wYWdlL2ZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24tZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZmYwMWQ4YTBiZTkyZTdm
ZDQzYmZlOGI0NzdkZWM5NGEzODNhNDI0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1l
U2NoZWR1bGVkTmF2aWdhdGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICsw
LDAgQEAKLQotU2NoZWR1bGVkIG5hdmlnYXRpb24gd2l0aCBkZWxheSAwCi1TdGFydGVkIGxvYWRp
bmcKLUNsZWFyZWQgc2NoZWR1bGVkIG5hdmlnYXRpb24KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmln
YXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWFiMTllY2E2MTRhZDE4
NzcyYWU0Y2NlY2E2NTQ0MDNjNjNmMzFmOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFt
ZVNjaGVkdWxlZE5hdmlnYXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAK
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBsb2FkKCkKLXsKLSAgICBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCJpZnJhbWUiKS5zcmMgPSAicmVzb3VyY2VzL2JsYW5rLmh0bWwiOwotfQotCi1mdW5j
dGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiUGFnZS5mcmFt
ZVNjaGVkdWxlZE5hdmlnYXRpb24iXSA9IG9uU2NoZWR1bGVkOwotICAgIEluc3BlY3RvclRlc3Qu
ZXZlbnRIYW5kbGVyWyJQYWdlLmZyYW1lU3RhcnRlZExvYWRpbmciXSA9IG9uU3RhcnRlZDsKLSAg
ICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiUGFnZS5mcmFtZUNsZWFyZWRTY2hlZHVsZWRO
YXZpZ2F0aW9uIl0gPSBvbkNsZWFyZWQ7Ci0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
UGFnZS5lbmFibGUiLCB7fSk7Ci0KLSAgICBmdW5jdGlvbiBvblNjaGVkdWxlZChtc2cpCi0gICAg
ewotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU2NoZWR1bGVkIG5hdmlnYXRpb24gd2l0aCBk
ZWxheSAiICsgbXNnLnBhcmFtcy5kZWxheSk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gb25TdGFy
dGVkKG1zZykKLSAgICB7Ci0gICAgICAgIC8vIFRoaXMgZXZlbnQgc2hvdWxkIGJlIHJlY2VpdmVk
IGJlZm9yZSB0aGUgc2NoZWR1bGVkIG5hdmlnYXRpb24gaXMgY2xlYXJlZC4KLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIlN0YXJ0ZWQgbG9hZGluZyIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IG9uQ2xlYXJlZChtc2cpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ2xlYXJl
ZCBzY2hlZHVsZWQgbmF2aWdhdGlvbiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRl
VGVzdCgpOwotICAgIH0KLQotICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUu
ZXZhbHVhdGUiLCB7ICJleHByZXNzaW9uIjogImxvYWQoKSIgfSk7Ci19Ci0KLTwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPGlmcmFtZT4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2Zy
YW1lU3RhcnRlZExvYWRpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDU2MGVmNTdjMzg2MGMxMmZjMzIwYmRkYWQ5OTRkM2ZkYTJmYTRk
YTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLQotU3RhcnRlZCBsb2FkaW5nCi1T
dG9wcGVkIGxvYWRpbmcKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBiM2E5NDBkNTA1YzIyN2U3MWVhZTNiZjU2ZDZiZmUyNWE4MzFmN2Q1Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL2ZyYW1lU3RhcnRlZExvYWRpbmcuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDM2ICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMv
cHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotCi1mdW5jdGlvbiBsb2FkKCkK
LXsKLSAgICB2YXIgZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKLSAg
ICBmcmFtZS5zcmMgPSAicmVzb3VyY2VzL2JsYW5rLmh0bWwiOwotICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoZnJhbWUpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0
b3JUZXN0LmV2ZW50SGFuZGxlclsiUGFnZS5mcmFtZVN0YXJ0ZWRMb2FkaW5nIl0gPSBvblN0YXJ0
OwotICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJQYWdlLmZyYW1lU3RvcHBlZExvYWRp
bmciXSA9IG9uU3RvcDsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJQYWdlLmVuYWJs
ZSIsIHt9KTsKLQotICAgIGZ1bmN0aW9uIG9uU3RhcnQoKQotICAgIHsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIlN0YXJ0ZWQgbG9hZGluZyIpOwotICAgIH0KLSAgICBmdW5jdGlvbiBvblN0
b3AoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlN0b3BwZWQgbG9hZGluZyIp
OwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgIH0KLQotICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ICJleHByZXNzaW9u
IjogImxvYWQoKSIgfSk7Ci19Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL3BhZ2UvamF2YXNjcmlwdERpYWxvZ0V2ZW50cy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9qYXZhc2NyaXB0RGlhbG9nRXZl
bnRzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTc0ODcyZDRl
NWVjNTQ4OGJhNGJjODk2ODdlMGRlNmI4NDNhNDI3NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFn
ZS9qYXZhc2NyaXB0RGlhbG9nRXZlbnRzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDEzICswLDAgQEAKLUNPTkZJUk0gTkFWSUdBVElPTjogYmVmb3JldW5sb2FkIGluIGphdmFzY3Jp
cHREaWFsb2dFdmVudHMKLUFMRVJUOiBhbGVydAotQ09ORklSTTogY29uZmlybQotUFJPTVBUOiBw
cm9tcHQsIGRlZmF1bHQgdGV4dDogCi1PcGVuaW5nIHdpdGggbWVzc2FnZTogYmVmb3JldW5sb2Fk
IGluIGphdmFzY3JpcHREaWFsb2dFdmVudHMKLUNsb3NlZAotT3BlbmluZyB3aXRoIG1lc3NhZ2U6
IGFsZXJ0Ci1DbG9zZWQKLU9wZW5pbmcgd2l0aCBtZXNzYWdlOiBjb25maXJtCi1DbG9zZWQKLU9w
ZW5pbmcgd2l0aCBtZXNzYWdlOiBwcm9tcHQKLUNsb3NlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9qYXZhc2NyaXB0RGlhbG9nRXZlbnRzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9qYXZhc2NyaXB0RGlhbG9nRXZl
bnRzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0ZTM3YjBkN2YyMGVjMTM3
NTM5NDE2NDEzY2FmMDRmZDc5ODNhZjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3BhZ2UvamF2YXNj
cmlwdERpYWxvZ0V2ZW50cy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotPGh0
bWw+Ci08aGVhZD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci0KLXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJiZWZvcmV1bmxvYWQiLCBvbkJl
Zm9yZVVubG9hZCk7Ci0KLWZ1bmN0aW9uIG9uQmVmb3JlVW5sb2FkKCkKLXsKLSAgICB3aW5kb3cu
cmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmVmb3JldW5sb2FkIiwgb25CZWZvcmVVbmxvYWQpOwotICAg
IHJldHVybiAiYmVmb3JldW5sb2FkIGluIGphdmFzY3JpcHREaWFsb2dFdmVudHMiOwotfQotCi1m
dW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiUGFnZS5q
YXZhc2NyaXB0RGlhbG9nT3BlbmluZyJdID0gb25PcGVuaW5nOwotICAgIEluc3BlY3RvclRlc3Qu
ZXZlbnRIYW5kbGVyWyJQYWdlLmphdmFzY3JpcHREaWFsb2dDbG9zZWQiXSA9IG9uQ2xvc2VkOwot
ICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlBhZ2UuZW5hYmxlIiwge30pOwotCi0gICAg
ZnVuY3Rpb24gb25PcGVuaW5nKGV2ZW50KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIk9wZW5pbmcgd2l0aCBtZXNzYWdlOiAiICsgZXZlbnQucGFyYW1zLm1lc3NhZ2UpOwotICAg
IH0KLSAgICBmdW5jdGlvbiBvbkNsb3NlZCgpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZygiQ2xvc2VkIik7Ci0gICAgfQotCi0gICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
UGFnZS5uYXZpZ2F0ZSIsIHsgInVybCI6ICJub3N1Y2h1cmwiIH0pOwotICAgIEluc3BlY3RvclRl
c3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ICJleHByZXNzaW9uIjogImFsZXJ0
KCdhbGVydCcpIiB9KTsKLSAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2
YWx1YXRlIiwgeyAiZXhwcmVzc2lvbiI6ICJjb25maXJtKCdjb25maXJtJykiIH0pOwotICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ICJleHByZXNzaW9u
IjogInByb21wdCgncHJvbXB0JykiIH0sIG9uRG9uZSk7Ci0KLSAgICBmdW5jdGlvbiBvbkRvbmUo
KQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICB9Ci19
Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPC9ib2R5
PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Bh
Z2UvcmVzb3VyY2VzL2JsYW5rLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
cGFnZS9yZXNvdXJjZXMvYmxhbmsuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OTA1MzFhNGIzZWQxOGIyMGM5ZDViOTUyYjYxY2JiOTM1ZTBlNTBhMi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvcGFnZS9yZXNvdXJjZXMvYmxhbmsuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIgKzAs
MCBAQAotPGh0bWw+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvcGFnZS9zZXRFbXVsYXRlZE1lZGlhLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL3NldEVtdWxhdGVkTWVkaWEtZXhwZWN0ZWQudHh0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OWVkZWJlMjI3ZjEyYzVhOTU5ZmFiYzRiOTZh
ZThiM2JiN2M0ZjIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9wYWdlL3NldEVtdWxhdGVkTWVkaWEt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgNzogUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IG9iamVjdFRo
YXREb2VzTm90RXhpc3QKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA3OiBSZWZlcmVuY2VFcnJvcjog
Q2FuJ3QgZmluZCB2YXJpYWJsZTogb2JqZWN0VGhhdERvZXNOb3RFeGlzdAotVGVzdCB0aGF0IHVu
Y2F1Z2h0IGV4Y2VwdGlvbiBpbiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIHdpbGwgYmUgcmVwb3J0
ZWQgdG8gdGhlIGNvbnNvbGUuIE9uIHN1Y2Nlc3MgeW91IHNob3VsZCBzZWUgdHdvIGV4Y2VwdGlv
bnMgaW4gdGhlIGxpc3RlbmVyIGxvZ2dlZCB0byB0aGUgY29uc29sZSAoZmlyc3QgdGltZSB3aGVu
IHRoZSBtZWRpYSB0eXBlIGlzIG92ZXJyaWRkZW4gYW5kIHNlY29uZCAtIHdoZW4gdGhleSBhcmUg
cmVzdG9yZWQpLiBCdWcgMTA1MTYyLgotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9wYWdlL3NldEVtdWxhdGVkTWVkaWEuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9wYWdlL3NldEVtdWxhdGVkTWVkaWEuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMTg4YTVhNTBiY2ZlYTZlZDk0NDc4NzA1OWYzZTIxZDI2OTliNWFj
Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9zZXRFbXVsYXRlZE1lZGlhLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Vz
L3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZhciB0aGVNZWRpYVF1ZXJ5
TGlzdCA9IHdpbmRvdy5tYXRjaE1lZGlhKCJwcmludCIpOwotdGhlTWVkaWFRdWVyeUxpc3QuYWRk
TGlzdGVuZXIoZnVuY3Rpb24oYU1lZGlhUXVlcnlMaXN0KSB7Ci0gICAgb2JqZWN0VGhhdERvZXNO
b3RFeGlzdC5wcm9kdWNlRXJyb3IoKTsKLX0pOwotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBJ
bnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJQYWdlLmVuYWJsZSIsIHt9KTsKLSAgICBJbnNwZWN0
b3JUZXN0LnNlbmRDb21tYW5kKCJQYWdlLnNldEVtdWxhdGVkTWVkaWEiLCB7Im1lZGlhIjogInBy
aW50In0sIGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKLSAgICAgICAgaWYgKG1lc3NhZ2VPYmpl
Y3QuZXJyb3IpCi0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTEVEOiAiICsgbWVz
c2FnZU9iamVjdC5lcnJvci5tZXNzYWdlKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiUGFnZS5kaXNhYmxlIiwge30pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRl
VGVzdCgpOwotICAgIH0pOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Ci08cD5UZXN0IHRoYXQgdW5jYXVnaHQgZXhjZXB0aW9uIGluIE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIgd2lsbCBiZSByZXBvcnRlZCB0byB0aGUgY29uc29sZS4gT24gc3VjY2VzcyB5
b3Ugc2hvdWxkIHNlZSB0d28gZXhjZXB0aW9ucyBpbiB0aGUgbGlzdGVuZXIgbG9nZ2VkIHRvIHRo
ZSBjb25zb2xlIChmaXJzdCB0aW1lIHdoZW4gdGhlIG1lZGlhIHR5cGUgaXMgb3ZlcnJpZGRlbiBh
bmQgc2Vjb25kIC0gd2hlbiB0aGV5IGFyZSByZXN0b3JlZCkuIDxhIGhyZWY9Imh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDUxNjIiPkJ1ZyAxMDUxNjIuPC9wPgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L3Jlc291cmNlcy9jb25zb2xlLXRlc3QuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvcmVzb3VyY2VzL2NvbnNvbGUtdGVzdC5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMTQ2NGUwMTAzNjlhYjQzY2M5ZmRiNzM2YzBmYmQzMzNmMmUwNWZiYS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3It
cHJvdG9jb2wvcmVzb3VyY2VzL2NvbnNvbGUtdGVzdC5qcworKysgL2Rldi9udWxsCkBAIC0xLDc1
ICswLDAgQEAKLUluc3BlY3RvclRlc3QuQ29uc29sZSA9IHt9OwotCi1JbnNwZWN0b3JUZXN0LkNv
bnNvbGUuc2FuaXRpemVDb25zb2xlTWVzc2FnZSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCi17
Ci0gICAgZnVuY3Rpb24gYmFzZW5hbWUodXJsKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHVybC5z
dWJzdHJpbmcodXJsLmxhc3RJbmRleE9mKCIvIikgKyAxKSB8fCAiPz8/IjsKLSAgICB9Ci0KLSAg
ICB2YXIgbWVzc2FnZSA9IG1lc3NhZ2VPYmplY3QucGFyYW1zLm1lc3NhZ2U7Ci0gICAgdmFyIG9i
aiA9IHsKLSAgICAgICAgc291cmNlOiBtZXNzYWdlLnNvdXJjZSwKLSAgICAgICAgbGV2ZWw6IG1l
c3NhZ2UubGV2ZWwsCi0gICAgICAgIHRleHQ6IG1lc3NhZ2UudGV4dCwKLSAgICAgICAgbG9jYXRp
b246IGJhc2VuYW1lKG1lc3NhZ2UudXJsKSArICI6IiArIG1lc3NhZ2UubGluZSArICI6IiArIG1l
c3NhZ2UuY29sdW1uCi0gICAgfTsKLQotICAgIGlmIChtZXNzYWdlLnBhcmFtZXRlcnMpIHsKLSAg
ICAgICAgdmFyIHBhcmFtcyA9IFtdOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1lc3Nh
Z2UucGFyYW1ldGVycy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIHBhcmFtID0gbWVz
c2FnZS5wYXJhbWV0ZXJzW2ldOwotICAgICAgICAgICAgdmFyIG8gPSB7dHlwZTogcGFyYW0udHlw
ZX07Ci0gICAgICAgICAgICBpZiAocGFyYW0uc3VidHlwZSkKLSAgICAgICAgICAgICAgICBvLnN1
YnR5cGUgPSBwYXJhbS5zdWJ0eXBlOwotICAgICAgICAgICAgcGFyYW1zLnB1c2gobyk7Ci0gICAg
ICAgIH0KLSAgICAgICAgb2JqLnBhcmFtZXRlcnMgPSBwYXJhbXM7Ci0gICAgfQotCi0gICAgcmV0
dXJuIG9iajsKLX0KLQotSW5zcGVjdG9yVGVzdC5Db25zb2xlLmFkZFRlc3RDYXNlID0gZnVuY3Rp
b24oc3VpdGUsIGFyZ3MpCi17Ci0gICAgaWYgKCEoc3VpdGUgaW5zdGFuY2VvZiBJbnNwZWN0b3JU
ZXN0LkFzeW5jVGVzdFN1aXRlKSkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJDb25zb2xlIHRl
c3QgY2FzZXMgbXVzdCBiZSBhZGRlZCB0byBhbiBhc3luYyB0ZXN0IHN1aXRlLiIpOwotCi0gICAg
dmFyIHtuYW1lLCBkZXNjcmlwdGlvbiwgZXhwcmVzc2lvbiwgZXhwZWN0ZWR9ID0gYXJnczsKLSAg
ICBzdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWUsCi0gICAgICAgIGRlc2NyaXB0aW9u
LAotICAgICAgICB0ZXN0OiBmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXdhaXRFdmVudCh7Ci0gICAgICAgICAgICAgICAgZXZlbnQ6ICJDb25z
b2xlLm1lc3NhZ2VBZGRlZCIsCi0gICAgICAgICAgICB9KQotICAgICAgICAgICAgLnRoZW4oZnVu
Y3Rpb24obWVzc2FnZU9iamVjdCkgewotICAgICAgICAgICAgICAgIHZhciBjb25zb2xlTWVzc2Fn
ZSA9IG1lc3NhZ2VPYmplY3QucGFyYW1zLm1lc3NhZ2U7Ci0gICAgICAgICAgICAgICAgdmFyIHtz
b3VyY2UsIGxldmVsLCB0ZXh0LCBwYXJhbWV0ZXJzfSA9IGNvbnNvbGVNZXNzYWdlOwotICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHNvdXJjZSA9PT0gZXhwZWN0ZWQuc291cmNl
LCAiQ29uc29sZU1lc3NhZ2UgdHlwZSBzaG91bGQgYmUgJyIgKyBleHBlY3RlZC5zb3VyY2UgKyAi
Jy4iKTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChsZXZlbCA9PT0gZXhw
ZWN0ZWQubGV2ZWwsICJDb25zb2xlTWVzc2FnZSBsZXZlbCBzaG91bGQgYmUgJyIgKyBleHBlY3Rl
ZC5sZXZlbCArICInLiIpOwotCi0gICAgICAgICAgICAgICAgaWYgKGV4cGVjdGVkLnRleHQpCi0g
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHRleHQgPT09IGV4cGVjdGVk
LnRleHQsICJDb25zb2xlTWVzc2FnZSB0ZXh0IHNob3VsZCBiZSAnIiArIGV4cGVjdGVkLnRleHQg
KyAiJy4iKTsKLQotICAgICAgICAgICAgICAgIGlmIChleHBlY3RlZC5wYXJhbWV0ZXJzKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHBhcmFtZXRlcnMubGVuZ3Ro
ID09PSBleHBlY3RlZC5wYXJhbWV0ZXJzLmxlbmd0aCwgIkNvbnNvbGVNZXNzYWdlIHBhcmFtZXRl
cnMubGVuZ3RoID09PSAiICsgZXhwZWN0ZWQucGFyYW1ldGVycy5sZW5ndGgpOwotICAgICAgICAg
ICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHBhcmFtZXRlcnMubGVuZ3RoOyArK2kpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHZhciBleHBlY3RlZFR5cGUgPSBleHBlY3RlZC5wYXJh
bWV0ZXJzW2ldOwotICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQo
cGFyYW1ldGVyc1tpXS50eXBlID09PSBleHBlY3RlZFR5cGUsICJDb25zb2xlTWVzc2FnZSBwYXJh
bWV0ZXIgIiArIGkgKyAiIHNob3VsZCBoYXZlIHR5cGUgJyIgKyBleHBlY3RlZFR5cGUgKyAiJy4i
KTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgICAgIHJlc29sdmUoKTsKLSAgICAgICAgICAgIH0pCi0gICAgICAgICAgICAuY2F0Y2gocmVq
ZWN0KTsKLQotICAgICAgICAgICAgLy8gQ2F1c2UgYSBtZXNzYWdlQWRkZWQgZXZlbnQgdG8gYmUg
Z2VuZXJhdGVkLgotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkV2YWx1YXRpbmcgZXhw
cmVzc2lvbjogIiArIGV4cHJlc3Npb24pOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCh7Ci0gICAgICAgICAgICAgICAgbWV0aG9kOiAiUnVudGltZS5ldmFsdWF0ZSIsCi0g
ICAgICAgICAgICAgICAgcGFyYW1zOiB7ZXhwcmVzc2lvbn0KLSAgICAgICAgICAgIH0pOwotICAg
ICAgICB9Ci0gICAgfSk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJv
dG9jb2wvcmVzb3VyY2VzL2Vycm9ycy5jc3MgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvcmVzb3VyY2VzL2Vycm9ycy5jc3MKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI4
NWI0MjFhNmYwYzNmZTU0ZGIwMDA3MzEwZDdhODRhZjViYmZjNGMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3Rv
Y29sL3Jlc291cmNlcy9lcnJvcnMuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1k
aXYgeyAqIGNvbG9yOiByZWQ7IH0gZGl2IHsgKiBjb2xvcjogcmVkOyB9Ci0KLWRpdiB7Ci0gICAg
KgotICAgIGNvbG9yOgotICAgIHJlZDsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvZXJyb3JzLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL3Jlc291cmNlcy9lcnJvcnMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGQ0MzdlYWVjMDc3M2JlODZhNjExNGU4MDZhMWViZjNiMmNjYjMxNDkuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
LXByb3RvY29sL3Jlc291cmNlcy9lcnJvcnMuanMKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAg
QEAKLWNvbnNvbGUuZXJyb3IoImVycm9yIHNjcmlwdCIpOyBjb25zb2xlLndhcm4oIndhcm4gc2Ny
aXB0Iik7Ci0KLQotZnVuY3Rpb24gZm9vKCkgewotICAgIGNvbnNvbGUuZXJyb3IoImVycm9yIHNj
cmlwdCIpOwotICAgIGNvbnNvbGUud2Fybigid2FybiBzY3JpcHQiKTsKLX0KLQotZm9vKCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL3Byb2Jl
LWhlbHBlci5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvcHJv
YmUtaGVscGVyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZTZkMWM4YzJhYmIx
ODZjOGI0ZTA5Y2YxYTVjNGU3ZDdlZjA1ZTIzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJj
ZXMvcHJvYmUtaGVscGVyLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTI3ICswLDAgQEAKLXdpbmRv
dy5Qcm9iZUhlbHBlciA9IHt9OwotCi1Qcm9iZUhlbHBlci5zaW1wbGlmaWVkUHJvYmVTYW1wbGUg
PSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQotewotICAgIHZhciBkYXRhID0gbWVzc2FnZU9iamVj
dC5wYXJhbXMuc2FtcGxlOwotICAgIHJldHVybiB7Ci0gICAgICAgIHByb2JlSWQ6IGRhdGEucHJv
YmVJZCwKLSAgICAgICAgYmF0Y2hJZDogZGF0YS5iYXRjaElkLAotICAgICAgICBzYW1wbGVJZDog
ZGF0YS5zYW1wbGVJZCwKLSAgICAgICAgcGF5bG9hZDogZGF0YS5wYXlsb2FkCi0gICAgfTsKLX0K
LQotUHJvYmVIZWxwZXIuc3RyaW5naWZ5UHJvYmVTYW1wbGUgPSBmdW5jdGlvbihQcm9iZVNhbXBs
ZSkKLXsKLSAgICBjb25zb2xlLmFzc2VydChQcm9iZVNhbXBsZSBpbnN0YW5jZW9mIFdlYkluc3Bl
Y3Rvci5Qcm9iZVNhbXBsZSwgIlVuZXhwZWN0ZWQgb2JqZWN0IHR5cGUhIik7Ci0gICAgcmV0dXJu
IEpTT04uc3RyaW5naWZ5KHsKLSAgICAgICAgInNhbXBsZUlkIjogUHJvYmVTYW1wbGUuc2FtcGxl
SWQsCi0gICAgICAgICJiYXRjaElkIjogUHJvYmVTYW1wbGUuYmF0Y2hJZCwKLSAgICB9KTsKLX0K
LQotUHJvYmVIZWxwZXIuaW5zdGFsbFRyYWNpbmdMaXN0ZW5lcnMgPSBmdW5jdGlvbigpCi17Ci0g
ICAgaWYgKCFXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyIHx8ICFXZWJJbnNwZWN0b3IucHJv
YmVNYW5hZ2VyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJN
YW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVu
dC5CcmVha3BvaW50QWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCJCcmVha3BvaW50IHdhcyBhZGRlZC4iKTsKLSAgICB9KTsKLQotICAgIFdlYkluc3Bl
Y3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdn
ZXJNYW5hZ2VyLkV2ZW50LkJyZWFrcG9pbnRSZW1vdmVkLCBmdW5jdGlvbihldmVudCkgewotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtwb2ludCB3YXMgcmVtb3ZlZC4iKTsKLSAgICB9
KTsKLQotICAgIFdlYkluc3BlY3Rvci5CcmVha3BvaW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLkJyZWFrcG9pbnQuRXZlbnQuRGlzYWJsZWRTdGF0ZURpZENoYW5nZSwgZnVuY3Rpb24o
ZXZlbnQpIHsKLSAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSBldmVudC50YXJnZXQ7Ci0gICAgICAg
IGNvbnNvbGUuYXNzZXJ0KGJyZWFrcG9pbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQnJlYWtw
b2ludCwgIlVuZXhwZWN0ZWQgb2JqZWN0IHR5cGUhIik7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIkJyZWFrcG9pbnQgZGlzYWJsZWQgc3RhdGUgY2hhbmdlZDogIiArIGJyZWFrcG9pbnQu
ZGlzYWJsZWQpOwotICAgIH0pOwotCi0gICAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnQuYWRkRXZl
bnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5FdmVudC5SZXNvbHZlZFN0YXRlRGlk
Q2hhbmdlLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICB2YXIgYnJlYWtwb2ludCA9IGV2ZW50
LnRhcmdldDsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoYnJlYWtwb2ludCBpbnN0YW5jZW9mIFdl
Ykluc3BlY3Rvci5CcmVha3BvaW50LCAiVW5leHBlY3RlZCBvYmplY3QgdHlwZSEiKTsKLQotICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiQnJlYWtwb2ludCByZXNvbHZlZCBzdGF0ZSBjaGFuZ2Vk
OiAiICsgYnJlYWtwb2ludC5yZXNvbHZlZCk7Ci0gICAgfSk7Ci0KLSAgICBXZWJJbnNwZWN0b3Iu
QnJlYWtwb2ludC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkV2ZW50
LkF1dG9Db250aW51ZURpZENoYW5nZSwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgdmFyIGJy
ZWFrcG9pbnQgPSBldmVudC50YXJnZXQ7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KGJyZWFrcG9p
bnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludCwgIlVuZXhwZWN0ZWQgb2JqZWN0
IHR5cGUhIik7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnQgYXV0b2Nv
bnRpbnVlIHN0YXRlIGNoYW5nZWQ6ICIgKyBicmVha3BvaW50LmF1dG9Db250aW51ZSk7Ci0gICAg
fSk7Ci0KLSAgICBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5CcmVha3BvaW50LkV2ZW50LkNvbmRpdGlvbkRpZENoYW5nZSwgZnVuY3Rpb24oZXZl
bnQpIHsKLSAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSBldmVudC50YXJnZXQ7Ci0gICAgICAgIGNv
bnNvbGUuYXNzZXJ0KGJyZWFrcG9pbnQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3IuQnJlYWtwb2lu
dCwgIlVuZXhwZWN0ZWQgb2JqZWN0IHR5cGUhIik7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkJyZWFrcG9pbnQgY29uZGl0aW9uIGNoYW5nZWQ6ICIgKyBicmVha3BvaW50LmNvbmRpdGlv
bik7Ci0gICAgfSk7Ci0KLSAgICBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludC5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5CcmVha3BvaW50LkV2ZW50LkFjdGlvbnNEaWRDaGFuZ2UsIGZ1bmN0
aW9uKGV2ZW50KSB7Ci0gICAgICAgIHZhciBicmVha3BvaW50ID0gZXZlbnQudGFyZ2V0OwotICAg
ICAgICBjb25zb2xlLmFzc2VydChicmVha3BvaW50IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkJy
ZWFrcG9pbnQsICJVbmV4cGVjdGVkIG9iamVjdCB0eXBlISIpOwotCi0gICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJCcmVha3BvaW50IGFjdGlvbnMgY2hhbmdlZC4gTmV3IGNvdW50OiAiICsgYnJl
YWtwb2ludC5hY3Rpb25zLmxlbmd0aCk7Ci0gICAgfSk7Ci0KLSAgICBXZWJJbnNwZWN0b3IucHJv
YmVNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlByb2JlTWFuYWdlci5FdmVu
dC5Qcm9iZVNldEFkZGVkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICB2YXIgcHJvYmVTZXQg
PSBldmVudC5kYXRhLnByb2JlU2V0OwotICAgICAgICBjb25zb2xlLmFzc2VydChwcm9iZVNldCBp
bnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Qcm9iZVNldCwgIlVuZXhwZWN0ZWQgb2JqZWN0IHR5cGUh
Iik7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlByb2JlIHNldCB3YXMgYWRkZWQuIE5l
dyBjb3VudDogIiArIFdlYkluc3BlY3Rvci5wcm9iZU1hbmFnZXIucHJvYmVTZXRzLmxlbmd0aCk7
Ci0gICAgfSk7Ci0KLSAgICBXZWJJbnNwZWN0b3IucHJvYmVNYW5hZ2VyLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLlByb2JlTWFuYWdlci5FdmVudC5Qcm9iZVNldFJlbW92ZWQsIGZ1bmN0
aW9uKGV2ZW50KSB7Ci0gICAgICAgIHZhciBwcm9iZVNldCA9IGV2ZW50LmRhdGEucHJvYmVTZXQ7
Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHByb2JlU2V0IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9y
LlByb2JlU2V0LCAiVW5leHBlY3RlZCBvYmplY3QgdHlwZSEiKTsKLQotICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiUHJvYmUgc2V0IHdhcyByZW1vdmVkLiBOZXcgY291bnQ6ICIgKyBXZWJJbnNw
ZWN0b3IucHJvYmVNYW5hZ2VyLnByb2JlU2V0cy5sZW5ndGgpOwotICAgIH0pOwotCi0gICAgV2Vi
SW5zcGVjdG9yLlByb2JlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlByb2JlLkV2ZW50
LkV4cHJlc3Npb25DaGFuZ2VkLCBmdW5jdGlvbihldmVudCkgewotICAgICAgICB2YXIgcHJvYmUg
PSBldmVudC50YXJnZXQ7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHByb2JlIGluc3RhbmNlb2Yg
V2ViSW5zcGVjdG9yLlByb2JlLCAiVW5leHBlY3RlZCBvYmplY3QgdHlwZSEiKTsKLQotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiUHJvYmUgd2l0aCBpZGVudGlmaWVyICIgKyBwcm9iZS5pZCAr
ICIgY2hhbmdlZCBleHByZXNzaW9uOiAiICsgcHJvYmUuZXhwcmVzc2lvbik7Ci0gICAgfSk7Ci0K
LSAgICBXZWJJbnNwZWN0b3IuUHJvYmUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUHJv
YmUuRXZlbnQuU2FtcGxlQWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgIHZhciBwcm9i
ZSA9IGV2ZW50LnRhcmdldDsKLSAgICAgICAgdmFyIHNhbXBsZSA9IGV2ZW50LmRhdGE7Ci0gICAg
ICAgIGNvbnNvbGUuYXNzZXJ0KHByb2JlIGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlByb2JlLCAi
VW5leHBlY3RlZCBvYmplY3QgdHlwZSEiKTsKLSAgICAgICAgY29uc29sZS5hc3NlcnQoc2FtcGxl
IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLlByb2JlU2FtcGxlLCAiVW5leHBlY3RlZCBvYmplY3Qg
dHlwZSEiKTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUHJvYmUgd2l0aCBpZGVudGlm
aWVyICIgKyBwcm9iZS5pZCArICIgYWRkZWQgc2FtcGxlOiAiICsgc2FtcGxlKTsKLSAgICB9KTsK
LQotICAgIFdlYkluc3BlY3Rvci5Qcm9iZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Q
cm9iZS5FdmVudC5TYW1wbGVzQ2xlYXJlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgdmFy
IHByb2JlID0gZXZlbnQudGFyZ2V0OwotICAgICAgICBjb25zb2xlLmFzc2VydChwcm9iZSBpbnN0
YW5jZW9mIFdlYkluc3BlY3Rvci5Qcm9iZSwgIlVuZXhwZWN0ZWQgb2JqZWN0IHR5cGUhIik7Ci0K
LSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlByb2JlIHdpdGggaWRlbnRpZmllciAiICsgcHJv
YmUuaWQgKyAiIGNsZWFyZWQgYWxsIHNhbXBsZXMuIik7Ci0gICAgfSk7Ci0KLSAgICBXZWJJbnNw
ZWN0b3IuUHJvYmVTZXQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUHJvYmVTZXQuRXZl
bnQuUHJvYmVBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgdmFyIHByb2JlID0gZXZl
bnQuZGF0YTsKLSAgICAgICAgdmFyIHByb2JlU2V0ID0gZXZlbnQudGFyZ2V0OwotICAgICAgICBj
b25zb2xlLmFzc2VydChwcm9iZSBpbnN0YW5jZW9mIFdlYkluc3BlY3Rvci5Qcm9iZSwgIlVuZXhw
ZWN0ZWQgb2JqZWN0IHR5cGUhIik7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHByb2JlU2V0IGlu
c3RhbmNlb2YgV2ViSW5zcGVjdG9yLlByb2JlU2V0LCAiVW5leHBlY3RlZCBvYmplY3QgdHlwZSEi
KTsKLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUHJvYmUgd2l0aCBpZGVudGlmaWVyICIg
KyBwcm9iZS5pZCArICIgd2FzIGFkZGVkIHRvIHByb2JlIHNldC4iKTsKLSAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIlByb2JlIHNldCdzIHByb2JlIGNvdW50OiAiICsgcHJvYmVTZXQucHJvYmVz
Lmxlbmd0aCk7Ci0gICAgfSk7Ci0KLSAgICBXZWJJbnNwZWN0b3IuUHJvYmVTZXQuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuUHJvYmVTZXQuRXZlbnQuUHJvYmVSZW1vdmVkLCBmdW5jdGlv
bihldmVudCkgewotICAgICAgICB2YXIgcHJvYmUgPSBldmVudC5kYXRhOwotICAgICAgICB2YXIg
cHJvYmVTZXQgPSBldmVudC50YXJnZXQ7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHByb2JlIGlu
c3RhbmNlb2YgV2ViSW5zcGVjdG9yLlByb2JlLCAiVW5leHBlY3RlZCBvYmplY3QgdHlwZSEiKTsK
LSAgICAgICAgY29uc29sZS5hc3NlcnQocHJvYmVTZXQgaW5zdGFuY2VvZiBXZWJJbnNwZWN0b3Iu
UHJvYmVTZXQsICJVbmV4cGVjdGVkIG9iamVjdCB0eXBlISIpOwotCi0gICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJQcm9iZSB3aXRoIGlkZW50aWZpZXIgIiArIHByb2JlLmlkICsgIiB3YXMgcmVt
b3ZlZCBmcm9tIHByb2JlIHNldC4iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlByb2Jl
IHNldCdzIHByb2JlIGNvdW50OiAiICsgcHJvYmVTZXQucHJvYmVzLmxlbmd0aCk7Ci0gICAgfSk7
Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcnVudGltZS9n
ZXRQcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2Nv
bC9ydW50aW1lL2dldFByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAxNTYwZDZlZTY5ZmIzYWEzMTM0MzJiNmI1NzFmNDZkNjVhNDJkNDVlLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci1wcm90b2NvbC9ydW50aW1lL2dldFByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotCi09PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFJ1bnRp
bWUuZ2V0UHJvcGVydGllcwotLS0gUnVubmluZyB0ZXN0IGNhc2U6IENoZWNrUHJvcGVydGllc09m
V3JhcHBlck9iamVjdAotRXZhbHVhdGluZyBleHByZXNzaW9uOiAoZnVuY3Rpb24oKXt2YXIgciA9
IE9iamVjdCg1KTsgci5mb28gPSAnY2F0JztyZXR1cm4gcjt9KSgpCi1Qcm9wZXJ0aWVzOgotICBf
X3Byb3RvX18gb2JqZWN0IE51bWJlcgotICBmb28gc3RyaW5nIGNhdAotCi0tLSBSdW5uaW5nIHRl
c3QgY2FzZTogQ2hlY2tQcm9wZXJ0aWVzT2ZBcnJheQotRXZhbHVhdGluZyBleHByZXNzaW9uOiBb
J3JlZCcsICdncmVlbicsICdibHVlJ10KLVByb3BlcnRpZXM6Ci0gIF9fcHJvdG9fXyBvYmplY3Qg
QXJyYXkKLSAgMCBzdHJpbmcgcmVkCi0gIDEgc3RyaW5nIGdyZWVuCi0gIDIgc3RyaW5nIGJsdWUK
LSAgbGVuZ3RoIG51bWJlciAzCi0KLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDaGVja1Byb3BlcnRp
ZXNPZkJvdW5kQ29uc3RydWN0b3IKLUV2YWx1YXRpbmcgZXhwcmVzc2lvbjogTnVtYmVyLmJpbmQo
e30sIDUpCi1Qcm9wZXJ0aWVzOgotICBfX3Byb3RvX18gZnVuY3Rpb24gZnVuY3Rpb24gKCkgewot
ICAgIFtuYXRpdmUgY29kZV0KLX0KLSAgYXJndW1lbnRzCi0gIGNhbGxlcgotICBsZW5ndGggbnVt
YmVyIDAKLSAgbmFtZSBzdHJpbmcgTnVtYmVyCi1JbnRlcm5hbCBwcm9wZXJ0aWVzOgotICBib3Vu
ZEFyZ3Mgb2JqZWN0IEFycmF5Ci0gIGJvdW5kVGhpcyBvYmplY3QgT2JqZWN0Ci0gIHRhcmdldEZ1
bmN0aW9uIGZ1bmN0aW9uIGZ1bmN0aW9uIE51bWJlcigpIHsKLSAgICBbbmF0aXZlIGNvZGVdCi19
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9ydW50aW1lL2dl
dFByb3BlcnRpZXMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9ydW50aW1l
L2dldFByb3BlcnRpZXMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzQ0ZmUy
Mzk2Njk1MGFhMjY4MDc4Y2I4ODEyNDE4ZmNjYWZiMWRlNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wv
cnVudGltZS9nZXRQcm9wZXJ0aWVzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCwwIEBA
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHZhciBzdWl0ZSA9IG5ldyBJ
bnNwZWN0b3JUZXN0LkFzeW5jVGVzdFN1aXRlKCJSdW50aW1lLmdldFByb3BlcnRpZXMiKTsKLQot
ICAgIGFkZEdldFByb3BlcnRpZXNUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJDaGVja1Byb3Bl
cnRpZXNPZldyYXBwZXJPYmplY3QiLAotICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHByb3Bl
cnRpZXMgb2YgYE9iamVjdCg1KWAuIiwKLSAgICAgICAgZXhwcmVzc2lvbjogIihmdW5jdGlvbigp
e3ZhciByID0gT2JqZWN0KDUpOyByLmZvbyA9ICdjYXQnO3JldHVybiByO30pKCkiLAotICAgIH0p
OwotCi0gICAgYWRkR2V0UHJvcGVydGllc1Rlc3RDYXNlKHsKLSAgICAgICAgbmFtZTogIkNoZWNr
UHJvcGVydGllc09mQXJyYXkiLAotICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHByb3BlcnRp
ZXMgb2YgYFsncmVkJywgJ2dyZWVuJywgJ2JsdWUnXWAuIiwKLSAgICAgICAgZXhwcmVzc2lvbjog
IlsncmVkJywgJ2dyZWVuJywgJ2JsdWUnXSIsCi0gICAgfSk7Ci0KLSAgICBhZGRHZXRQcm9wZXJ0
aWVzVGVzdENhc2UoewotICAgICAgICBuYW1lOiAiQ2hlY2tQcm9wZXJ0aWVzT2ZCb3VuZENvbnN0
cnVjdG9yIiwKLSAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayBwcm9wZXJ0aWVzIG9mIGEgYm91
bmQgZnVuY3Rpb24gKGhhcyBhIGJ1bmNoIG9mIGludGVybmFsIHByb3BlcnRpZXMpLiIsCi0gICAg
ICAgIGV4cHJlc3Npb246ICJOdW1iZXIuYmluZCh7fSwgNSkiLAotICAgIH0pOwotCi0gICAgc3Vp
dGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Ci0KLSAgICBmdW5jdGlvbiBhZGRHZXRQcm9wZXJ0
aWVzVGVzdENhc2UoYXJncykgewotICAgICAgICB2YXIge25hbWUsIGRlc2NyaXB0aW9uLCBleHBy
ZXNzaW9ufSA9IGFyZ3M7Ci0KLSAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICAg
ICAgbmFtZSwKLSAgICAgICAgICAgIGRlc2NyaXB0aW9uLAotICAgICAgICAgICAgdGVzdDogZnVu
Y3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkV2YWx1YXRpbmcgZXhwcmVzc2lvbjogIiArIGV4cHJlc3Npb24pOwotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXdhaXRDb21tYW5kKHsKLSAgICAgICAgICAgICAgICAgICAgbWV0
aG9kOiAiUnVudGltZS5ldmFsdWF0ZSIsCi0gICAgICAgICAgICAgICAgICAgIHBhcmFtczoge2V4
cHJlc3Npb259Ci0gICAgICAgICAgICAgICAgfSkKLSAgICAgICAgICAgICAgICAudGhlbihmdW5j
dGlvbihyZXBseSkgewotICAgICAgICAgICAgICAgICAgICB2YXIgb2JqZWN0SWQgPSByZXBseS5y
ZXN1bHQub2JqZWN0SWQ7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChvYmplY3RJZCA9PT0gdW5k
ZWZpbmVkKQotICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJvYmplY3RJ
ZCBpcyBleHBlY3RlZCIpOwotCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnNwZWN0b3JU
ZXN0LmF3YWl0Q29tbWFuZCh7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICJSdW50
aW1lLmdldFByb3BlcnRpZXMiLAotICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7b2Jq
ZWN0SWQsIG93blByb3BlcnRpZXM6IHRydWV9Ci0gICAgICAgICAgICAgICAgICAgIH0pOwotICAg
ICAgICAgICAgICAgIH0pCi0gICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24ocmVwbHkpIHsK
LSAgICAgICAgICAgICAgICAgICAgZHVtcEdldFByb3BlcnRpZXNSZXN1bHQocmVwbHkpOwotICAg
ICAgICAgICAgICAgICAgICByZXNvbHZlKCk7Ci0gICAgICAgICAgICAgICAgfSkKLSAgICAgICAg
ICAgICAgICAuY2F0Y2gocmVqZWN0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSk7Ci0gICAg
fQotCi0gICAgLy8gQSBoZWxwZXIgZnVuY3Rpb24gdGhhdCBkdW1wcyBvYmplY3QgcHJvcGVydGll
cyBhbmQgaW50ZXJuYWwgcHJvcGVydGllcyBpbiBzb3J0ZWQgb3JkZXIuCi0gICAgZnVuY3Rpb24g
ZHVtcEdldFByb3BlcnRpZXNSZXN1bHQocHJvdG9jb2xSZXN1bHQpIHsKLSAgICAgICAgdmFyIHBy
b3BlcnRpZXMgPSBwcm90b2NvbFJlc3VsdC5yZXN1bHQ7Ci0gICAgICAgIGlmIChwcm9wZXJ0aWVz
KSB7Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUHJvcGVydGllczoiKTsKLSAgICAg
ICAgICAgIHByb3BlcnRpZXMuc29ydChOYW1lZFRoaW5nQ29tcGFyYXRvcik7Ci0gICAgICAgICAg
ICBwcm9wZXJ0aWVzLm1hcChkdW1wU2luZ2xlUHJvcGVydHkpOwotICAgICAgICB9Ci0KLSAgICAg
ICAgdmFyIGludGVybmFsUHJvcGVydGllcyA9IHByb3RvY29sUmVzdWx0LmludGVybmFsUHJvcGVy
dGllczsKLSAgICAgICAgaWYgKGludGVybmFsUHJvcGVydGllcykgewotICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIkludGVybmFsIHByb3BlcnRpZXM6Iik7Ci0gICAgICAgICAgICBpbnRl
cm5hbFByb3BlcnRpZXMuc29ydChOYW1lZFRoaW5nQ29tcGFyYXRvcik7Ci0gICAgICAgICAgICBp
bnRlcm5hbFByb3BlcnRpZXMubWFwKGR1bXBTaW5nbGVQcm9wZXJ0eSk7Ci0gICAgICAgIH0KLQot
ICAgICAgICBmdW5jdGlvbiBkdW1wU2luZ2xlUHJvcGVydHkocHJvcGVydHkpIHsKLSAgICAgICAg
ICAgIHZhciB7bmFtZSwgdmFsdWV9ID0gcHJvcGVydHk7Ci0gICAgICAgICAgICBpZiAodmFsdWUp
Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiAgIiArIG5hbWUgKyAiICIgKyB2
YWx1ZS50eXBlICsgIiAiICsgKHZhbHVlLnZhbHVlIHx8IHZhbHVlLmRlc2NyaXB0aW9uKSk7Ci0g
ICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiAgIiAr
IG5hbWUpOwotICAgICAgICB9Ci0KLSAgICAgICAgZnVuY3Rpb24gTmFtZWRUaGluZ0NvbXBhcmF0
b3IobzEsIG8yKSB7Ci0gICAgICAgICAgICByZXR1cm4gbzEubmFtZS5sb2NhbGVDb21wYXJlKG8y
Lm5hbWUpOwotICAgICAgICB9Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBv
bkxvYWQ9InJ1blRlc3QoKSI+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvc3luYy10ZXN0LXN1aXRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9zeW5jLXRlc3Qtc3VpdGUtZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MmRlNjJjNDViMmI4YzY1ZDljMWU3NGNi
ZDg1NmIwZGIzOGUzMmMyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9zeW5jLXRlc3Qtc3VpdGUtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzQgKzAsMCBAQAotUEFTUzogaW5zdGFudGlh
dGluZyBTeW5jVGVzdFN1aXRlIHJlcXVpcmVzIG5hbWUgYXJndW1lbnQuCi1QQVNTOiBpbnN0YW50
aWF0aW5nIFN5bmNUZXN0U3VpdGUgcmVxdWlyZXMgc3RyaW5nIG5hbWUgYXJndW1lbnQuCi1QQVNT
OiBzaG91bGQgbm90IGJlIGFibGUgdG8gYWRkIGVtcHR5IHRlc3QgY2FzZS4KLVBBU1M6IHNob3Vs
ZCBub3QgYmUgYWJsZSB0byBhZGQgbm9uLW9iamVjdCB0ZXN0IGNhc2UuCi1QQVNTOiB0ZXN0IGNh
c2Ugc2hvdWxkIHJlcXVpcmUgc3RyaW5nIG5hbWUuCi1QQVNTOiB0ZXN0IGNhc2Ugc2hvdWxkIHJl
cXVpcmUgdGVzdCBmdW5jdGlvbi4KLVBBU1M6IHNob3VsZCBub3QgYmUgYWJsZSB0byBydW4gZW1w
dHkgdGVzdCBzdWl0ZS4KLQotPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBTeW5jVGVzdFN1aXRlLlJ1
blR3aWNlU3VpdGUKLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEdW1teVRlc3QwCi1QQVNTOiBSZXR1
cm4gdmFsdWUgb2YgcnVuVHdpY2VTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgYmUgdHJ1ZSB3
aGVuIGFsbCB0ZXN0cyBwYXNzLgotUEFTUzogc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHJ1biBhIHRl
c3Qgc3VpdGUgdHdpY2UuCi0KLT09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogU3luY1Rlc3RTdWl0ZS5T
ZXF1ZW50aWFsRXhlY3V0aW9uCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogRHVtbXlUZXN0MQotLS0g
UnVubmluZyB0ZXN0IGNhc2U6IER1bW15VGVzdDIKLS0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEdW1t
eVRlc3QzCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogRmFpbGluZ1Rlc3Q0Ci0hISBFWENFUFRJT046
IFtvYmplY3QgT2JqZWN0XQotUEFTUzogUmV0dXJuIHZhbHVlIG9mIHNlcXVlbnRpYWxFeGVjdXRp
b25TdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgYmUgZmFsc2Ugd2hlbiBhIHRlc3QgY2FzZSBm
YWlscy4KLVBBU1M6IHNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZSBzaG91bGQgaGF2ZSBleGVjdXRl
ZCBmb3VyIHRlc3RzLgotUEFTUzogc2VxdWVudGlhbEV4ZWN1dGlvblN1aXRlIHNob3VsZCBoYXZl
IHBhc3NlZCB0aHJlZSB0ZXN0cy4KLVBBU1M6IHNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZSBzaG91
bGQgaGF2ZSBmYWlsZWQgMSB0ZXN0LgotUEFTUzogc2VxdWVudGlhbEV4ZWN1dGlvblN1aXRlIHNo
b3VsZCBoYXZlIHNraXBwZWQgemVybyB0ZXN0cy4KLQotPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBT
eW5jVGVzdFN1aXRlLkFib3J0T25GYWlsdXJlCi0tLSBSdW5uaW5nIHRlc3QgY2FzZTogUGFzc2lu
Z1Rlc3Q1Ci0tLSBSdW5uaW5nIHRlc3QgY2FzZTogRmFpbGluZ1Rlc3Q2Ci1QQVNTOiBSZXR1cm4g
dmFsdWUgb2YgYWJvcnRPbkZhaWx1cmVTdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgYmUgZmFs
c2Ugd2hlbiBhIHRlc3QgY2FzZSBmYWlscy4KLVBBU1M6IGFib3J0T25GYWlsdXJlU3VpdGUgc2hv
dWxkIGhhdmUgZXhlY3V0ZWQgdHdvIHRlc3RzLgotUEFTUzogYWJvcnRPbkZhaWx1cmVTdWl0ZSBz
aG91bGQgaGF2ZSBwYXNzZWQgb25lIHRlc3QuCi1QQVNTOiBhYm9ydE9uRmFpbHVyZVN1aXRlIHNo
b3VsZCBoYXZlIGZhaWxlZCBvbmUgdGVzdC4KLVBBU1M6IGFib3J0T25GYWlsdXJlU3VpdGUgc2hv
dWxkIGhhdmUgc2tpcHBlZCBvbmUgdGVzdC4KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yLXByb3RvY29sL3N5bmMtdGVzdC1zdWl0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yLXByb3RvY29sL3N5bmMtdGVzdC1zdWl0ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxNmZlNDZkYjg2YjdjZmI3YjJlNDllYzBjZjcyNTIwY2QzZjc0ZWFmLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9zeW5jLXRlc3Qtc3VpdGUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDEz
OSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIHRyeSB7Ci0gICAg
ICAgIG5ldyBJbnNwZWN0b3JUZXN0LlN5bmNUZXN0U3VpdGUoKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIkZBSUw6IGluc3RhbnRpYXRpbmcgU3luY1Rlc3RTdWl0ZSByZXF1aXJlcyBuYW1l
IGFyZ3VtZW50LiIpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIlBBU1M6IGluc3RhbnRpYXRpbmcgU3luY1Rlc3RTdWl0ZSByZXF1aXJlcyBuYW1lIGFyZ3Vt
ZW50LiIpOwotICAgIH0KLQotICAgIHRyeSB7Ci0gICAgICAgIG5ldyBJbnNwZWN0b3JUZXN0LlN5
bmNUZXN0U3VpdGUoe30pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDogaW5zdGFu
dGlhdGluZyBTeW5jVGVzdFN1aXRlIHJlcXVpcmVzIHN0cmluZyBuYW1lIGFyZ3VtZW50LiIpOwot
ICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1M6IGluc3Rh
bnRpYXRpbmcgU3luY1Rlc3RTdWl0ZSByZXF1aXJlcyBzdHJpbmcgbmFtZSBhcmd1bWVudC4iKTsK
LSAgICB9Ci0KLSAgICB2YXIgYmFkQXJnc1N1aXRlID0gbmV3IEluc3BlY3RvclRlc3QuU3luY1Rl
c3RTdWl0ZSgiZHVtbXkiKTsKLSAgICB0cnkgewotICAgICAgICBiYWRBcmdzU3VpdGUuYWRkVGVz
dENhc2UoKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6IHNob3VsZCBub3QgYmUg
YWJsZSB0byBhZGQgZW1wdHkgdGVzdCBjYXNlLiIpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1M6IHNob3VsZCBub3QgYmUgYWJsZSB0byBhZGQgZW1w
dHkgdGVzdCBjYXNlLiIpOwotICAgIH0KLSAgICB0cnkgewotICAgICAgICBiYWRBcmdzU3VpdGUu
YWRkVGVzdENhc2UoInN0cmluZyIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDog
c2hvdWxkIG5vdCBiZSBhYmxlIHRvIGFkZCBub24tb2JqZWN0IHRlc3QgY2FzZS4iKTsKLSAgICB9
IGNhdGNoIChlKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiBzaG91bGQgbm90
IGJlIGFibGUgdG8gYWRkIG5vbi1vYmplY3QgdGVzdCBjYXNlLiIpOwotICAgIH0KLSAgICB0cnkg
ewotICAgICAgICBiYWRBcmdzU3VpdGUuYWRkVGVzdENhc2UoewotICAgICAgICAgICAgbmFtZTog
e30sCi0gICAgICAgICAgICB0ZXN0OiBmdW5jdGlvbigpIHsgcmV0dXJuIHRydWU7IH0sCi0gICAg
ICAgIH0pOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDogdGVzdCBjYXNlIHNob3Vs
ZCByZXF1aXJlIHN0cmluZyBuYW1lLiIpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIlBBU1M6IHRlc3QgY2FzZSBzaG91bGQgcmVxdWlyZSBzdHJpbmcgbmFt
ZS4iKTsKLSAgICB9Ci0gICAgdHJ5IHsKLSAgICAgICAgYmFkQXJnc1N1aXRlLmFkZFRlc3RDYXNl
KHsKLSAgICAgICAgICAgIG5hbWU6ICJmb28iLAotICAgICAgICAgICAgdGVzdDogbnVsbCwKLSAg
ICAgICAgfSk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiB0ZXN0IGNhc2Ugc2hv
dWxkIHJlcXVpcmUgdGVzdCBmdW5jdGlvbi4iKTsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiB0ZXN0IGNhc2Ugc2hvdWxkIHJlcXVpcmUgdGVzdCBm
dW5jdGlvbi4iKTsKLSAgICB9Ci0KLSAgICB2YXIgcnVuRW1wdHlTdWl0ZSA9IG5ldyBJbnNwZWN0
b3JUZXN0LlN5bmNUZXN0U3VpdGUoIlN5bmNUZXN0U3VpdGUuUnVuRW1wdHlTdWl0ZSIpOwotICAg
IHRyeSB7Ci0gICAgICAgIHJ1bkVtcHR5U3VpdGUucnVuVGVzdENhc2VzKCk7Ci0gICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJGQUlMOiBzaG91bGQgbm90IGJlIGFibGUgdG8gcnVuIGVtcHR5IHRl
c3Qgc3VpdGUuIik7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiUEFTUzogc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHJ1biBlbXB0eSB0ZXN0IHN1aXRlLiIpOwot
ICAgIH0KLQotICAgIHZhciBydW5Ud2ljZVN1aXRlID0gbmV3IEluc3BlY3RvclRlc3QuU3luY1Rl
c3RTdWl0ZSgiU3luY1Rlc3RTdWl0ZS5SdW5Ud2ljZVN1aXRlIik7Ci0gICAgcnVuVHdpY2VTdWl0
ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJEdW1teVRlc3QwIiwKLSAgICAgICAgZGVz
Y3JpcHRpb246ICJDaGVjayB0aGF0IGEgc3VpdGUgY2FuJ3QgcnVuIG1vcmUgdGhhbiBvbmNlLiIs
Ci0gICAgICAgIHRlc3Q6IGZ1bmN0aW9uKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIH0pOwotCi0g
ICAgdHJ5IHsKLSAgICAgICAgdmFyIHJlc3VsdCA9IHJ1blR3aWNlU3VpdGUucnVuVGVzdENhc2Vz
KCk7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHJlc3VsdCA9PT0gdHJ1ZSwgIlJldHVy
biB2YWx1ZSBvZiBydW5Ud2ljZVN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCBiZSB0cnVlIHdo
ZW4gYWxsIHRlc3RzIHBhc3MuIik7Ci0KLSAgICAgICAgcnVuVHdpY2VTdWl0ZS5ydW5UZXN0Q2Fz
ZXMoKTsgLy8gVHJ5IHRvIHRyaWdnZXIgYW4gZXJyb3IuCi0gICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJGQUlMOiBzaG91bGQgbm90IGJlIGFibGUgdG8gcnVuIGEgdGVzdCBzdWl0ZSB0d2ljZS4i
KTsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiBz
aG91bGQgbm90IGJlIGFibGUgdG8gcnVuIGEgdGVzdCBzdWl0ZSB0d2ljZS4iKTsKLSAgICB9Ci0K
LSAgICB2YXIgdGhyb3duRXJyb3IgPSBuZXcgRXJyb3IoeyJ0b2tlbiI6IDY2Nn0pOwotCi0gICAg
dmFyIHNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZSA9IG5ldyBJbnNwZWN0b3JUZXN0LlN5bmNUZXN0
U3VpdGUoIlN5bmNUZXN0U3VpdGUuU2VxdWVudGlhbEV4ZWN1dGlvbiIpOwotICAgIHNlcXVlbnRp
YWxFeGVjdXRpb25TdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJEdW1teVRlc3Qx
IiwKLSAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0ZXN0IGNhc2UgZXhlY3V0aW9uIG9yZGVy
LiIsCi0gICAgICAgIHRlc3Q6IGZ1bmN0aW9uKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIH0pOwot
ICAgIHNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6
ICJEdW1teVRlc3QyIiwKLSAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0ZXN0IGNhc2UgZXhl
Y3V0aW9uIG9yZGVyLiIsCi0gICAgICAgIHRlc3Q6IGZ1bmN0aW9uKCkgeyByZXR1cm4gdHJ1ZTsg
fQotICAgIH0pOwotICAgIHNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0g
ICAgICAgIG5hbWU6ICJEdW1teVRlc3QzIiwKLSAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0
ZXN0IGNhc2UgZXhlY3V0aW9uIG9yZGVyLiIsCi0gICAgICAgIHRlc3Q6IGZ1bmN0aW9uKCkgeyBy
ZXR1cm4gdHJ1ZTsgfQotICAgIH0pOwotICAgIHNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZS5hZGRU
ZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJGYWlsaW5nVGVzdDQiLAotICAgICAgICBkZXNjcmlw
dGlvbjogIkNoZWNrIHRoYXQgdGVzdCBmYWlscyBieSB0aHJvd2luZyBhbiBFcnJvciBpbnN0YW5j
ZS4iLAotICAgICAgICB0ZXN0OiBmdW5jdGlvbigpIHsgdGhyb3cgdGhyb3duRXJyb3I7IH0KLSAg
ICB9KTsKLQotICAgIHZhciByZXN1bHQgPSBzZXF1ZW50aWFsRXhlY3V0aW9uU3VpdGUucnVuVGVz
dENhc2VzKCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQocmVzdWx0ID09PSBmYWxzZSwgIlJl
dHVybiB2YWx1ZSBvZiBzZXF1ZW50aWFsRXhlY3V0aW9uU3VpdGUucnVuVGVzdENhc2VzKCkgc2hv
dWxkIGJlIGZhbHNlIHdoZW4gYSB0ZXN0IGNhc2UgZmFpbHMuIik7Ci0gICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnQoc2VxdWVudGlhbEV4ZWN1dGlvblN1aXRlLnJ1bkNvdW50ID09PSA0LCAic2VxdWVu
dGlhbEV4ZWN1dGlvblN1aXRlIHNob3VsZCBoYXZlIGV4ZWN1dGVkIGZvdXIgdGVzdHMuIik7Ci0g
ICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoc2VxdWVudGlhbEV4ZWN1dGlvblN1aXRlLnBhc3NDb3Vu
dCA9PT0gMywgInNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZSBzaG91bGQgaGF2ZSBwYXNzZWQgdGhy
ZWUgdGVzdHMuIik7Ci0gICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoc2VxdWVudGlhbEV4ZWN1dGlv
blN1aXRlLmZhaWxDb3VudCA9PT0gMSwgInNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZSBzaG91bGQg
aGF2ZSBmYWlsZWQgMSB0ZXN0LiIpOwotICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHNlcXVlbnRp
YWxFeGVjdXRpb25TdWl0ZS5za2lwQ291bnQgPT09IDAsICJzZXF1ZW50aWFsRXhlY3V0aW9uU3Vp
dGUgc2hvdWxkIGhhdmUgc2tpcHBlZCB6ZXJvIHRlc3RzLiIpOwotCi0gICAgdmFyIGFib3J0T25G
YWlsdXJlU3VpdGUgPSBuZXcgSW5zcGVjdG9yVGVzdC5TeW5jVGVzdFN1aXRlKCJTeW5jVGVzdFN1
aXRlLkFib3J0T25GYWlsdXJlIik7Ci0gICAgYWJvcnRPbkZhaWx1cmVTdWl0ZS5hZGRUZXN0Q2Fz
ZSh7Ci0gICAgICAgIG5hbWU6ICJQYXNzaW5nVGVzdDUiLAotICAgICAgICBkZXNjcmlwdGlvbjog
IlRoaXMgdGVzdCBpcyBhIGR1bW15LiIsCi0gICAgICAgIHRlc3Q6IGZ1bmN0aW9uKCkgeyByZXR1
cm4gdHJ1ZTsgfQotICAgIH0pOwotICAgIGFib3J0T25GYWlsdXJlU3VpdGUuYWRkVGVzdENhc2Uo
ewotICAgICAgICBuYW1lOiAiRmFpbGluZ1Rlc3Q2IiwKLSAgICAgICAgZGVzY3JpcHRpb246ICJU
aGlzIHRlc3Qgc2hvdWxkIGZhaWwgYnkgZXhwbGljaXRseSByZXR1cm5pbmcgYGZhbHNlYC4iLAot
ICAgICAgICB0ZXN0OiBmdW5jdGlvbigpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgfSk7Ci0gICAg
YWJvcnRPbkZhaWx1cmVTdWl0ZS5hZGRUZXN0Q2FzZSh7Ci0gICAgICAgIG5hbWU6ICJQYXNzaW5n
VGVzdDciLAotICAgICAgICBkZXNjcmlwdGlvbjogIlRoaXMgdGVzdCBzaG91bGQgbm90IGV4ZWN1
dGVkIHdoZW4gdGhlIHByZWNlZGluZyB0ZXN0IGZhaWxzLiIsCi0gICAgICAgIHRlc3Q6IGZ1bmN0
aW9uKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIH0pOwotCi0gICAgYWJvcnRPbkZhaWx1cmVTdWl0
ZS5ydW5UZXN0Q2FzZXMoKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChyZXN1bHQgPT09IGZh
bHNlLCAiUmV0dXJuIHZhbHVlIG9mIGFib3J0T25GYWlsdXJlU3VpdGUucnVuVGVzdENhc2VzKCkg
c2hvdWxkIGJlIGZhbHNlIHdoZW4gYSB0ZXN0IGNhc2UgZmFpbHMuIik7Ci0gICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoYWJvcnRPbkZhaWx1cmVTdWl0ZS5ydW5Db3VudCA9PT0gMiwgImFib3J0T25G
YWlsdXJlU3VpdGUgc2hvdWxkIGhhdmUgZXhlY3V0ZWQgdHdvIHRlc3RzLiIpOwotICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0KGFib3J0T25GYWlsdXJlU3VpdGUucGFzc0NvdW50ID09PSAxLCAiYWJv
cnRPbkZhaWx1cmVTdWl0ZSBzaG91bGQgaGF2ZSBwYXNzZWQgb25lIHRlc3QuIik7Ci0gICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnQoYWJvcnRPbkZhaWx1cmVTdWl0ZS5mYWlsQ291bnQgPT09IDEsICJh
Ym9ydE9uRmFpbHVyZVN1aXRlIHNob3VsZCBoYXZlIGZhaWxlZCBvbmUgdGVzdC4iKTsKLSAgICBJ
bnNwZWN0b3JUZXN0LmFzc2VydChhYm9ydE9uRmFpbHVyZVN1aXRlLnNraXBDb3VudCA9PT0gMSwg
ImFib3J0T25GYWlsdXJlU3VpdGUgc2hvdWxkIGhhdmUgc2tpcHBlZCBvbmUgdGVzdC4iKTsKLQot
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5IG9uTG9hZD0icnVuVGVzdCgpIj4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtbWVzc2FnZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25zb2xlLW1lc3NhZ2UtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmVkM2U1YTQ4MTQ0Mjk2ZGI1Mjg3ODQ5OTQ0MzU2MTI4ZmM0YTMw
NjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb25z
b2xlLW1lc3NhZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDggQEAKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAxOiBsb2cKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBpbmZvCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTogd2FybgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IGVycm9yCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTogZGVidWcKK1Rlc3RzIHRoYXQgY29uc29sZS5sb2cgYW5kIHJl
bGF0ZWQgQVBJcyBjYXVzZSBDb25zb2xlLm1lc3NhZ2VBZGRlZCBldmVudHMgdG8gYmUgZ2VuZXJh
dGVkIHdpdGggY29ycmVjdCBzb3VyY2UsIHR5cGUsIGxldmVsLCBhbmQgcGFyYW1ldGVyIHR5cGVz
LiAKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBDb25zb2xlLk1lc3NhZ2VzRnJvbUNvbW1hbmRM
aW5lQVBJCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ29uc29sZUxvZ1N0cmluZworRXZhbHVhdGlu
ZyBleHByZXNzaW9uOiBjb25zb2xlLmxvZygibG9nIik7CitQQVNTOiBDb25zb2xlTWVzc2FnZSB0
eXBlIHNob3VsZCBiZSAnY29uc29sZS1hcGknLgorUEFTUzogQ29uc29sZU1lc3NhZ2UgbGV2ZWwg
c2hvdWxkIGJlICdsb2cnLgorUEFTUzogQ29uc29sZU1lc3NhZ2UgdGV4dCBzaG91bGQgYmUgJ2xv
ZycuCitQQVNTOiBDb25zb2xlTWVzc2FnZSBwYXJhbWV0ZXJzLmxlbmd0aCA9PT0gMQorUEFTUzog
Q29uc29sZU1lc3NhZ2UgcGFyYW1ldGVyIDAgc2hvdWxkIGhhdmUgdHlwZSAnc3RyaW5nJy4KKwor
LS0gUnVubmluZyB0ZXN0IGNhc2U6IENvbnNvbGVJbmZvU3RyaW5nCitFdmFsdWF0aW5nIGV4cHJl
c3Npb246IGNvbnNvbGUuaW5mbygiaW5mbyIpOworUEFTUzogQ29uc29sZU1lc3NhZ2UgdHlwZSBz
aG91bGQgYmUgJ2NvbnNvbGUtYXBpJy4KK1BBU1M6IENvbnNvbGVNZXNzYWdlIGxldmVsIHNob3Vs
ZCBiZSAnaW5mbycuCitQQVNTOiBDb25zb2xlTWVzc2FnZSB0ZXh0IHNob3VsZCBiZSAnaW5mbycu
CitQQVNTOiBDb25zb2xlTWVzc2FnZSBwYXJhbWV0ZXJzLmxlbmd0aCA9PT0gMQorUEFTUzogQ29u
c29sZU1lc3NhZ2UgcGFyYW1ldGVyIDAgc2hvdWxkIGhhdmUgdHlwZSAnc3RyaW5nJy4KKworLS0g
UnVubmluZyB0ZXN0IGNhc2U6IENvbnNvbGVXYXJuU3RyaW5nCitFdmFsdWF0aW5nIGV4cHJlc3Np
b246IGNvbnNvbGUud2Fybigid2FybiIpOworUEFTUzogQ29uc29sZU1lc3NhZ2UgdHlwZSBzaG91
bGQgYmUgJ2NvbnNvbGUtYXBpJy4KK1BBU1M6IENvbnNvbGVNZXNzYWdlIGxldmVsIHNob3VsZCBi
ZSAnd2FybmluZycuCitQQVNTOiBDb25zb2xlTWVzc2FnZSB0ZXh0IHNob3VsZCBiZSAnd2Fybicu
CitQQVNTOiBDb25zb2xlTWVzc2FnZSBwYXJhbWV0ZXJzLmxlbmd0aCA9PT0gMQorUEFTUzogQ29u
c29sZU1lc3NhZ2UgcGFyYW1ldGVyIDAgc2hvdWxkIGhhdmUgdHlwZSAnc3RyaW5nJy4KKworLS0g
UnVubmluZyB0ZXN0IGNhc2U6IENvbnNvbGVFcnJvclN0cmluZworRXZhbHVhdGluZyBleHByZXNz
aW9uOiBjb25zb2xlLmVycm9yKCJlcnJvciIpOworUEFTUzogQ29uc29sZU1lc3NhZ2UgdHlwZSBz
aG91bGQgYmUgJ2NvbnNvbGUtYXBpJy4KK1BBU1M6IENvbnNvbGVNZXNzYWdlIGxldmVsIHNob3Vs
ZCBiZSAnZXJyb3InLgorUEFTUzogQ29uc29sZU1lc3NhZ2UgdGV4dCBzaG91bGQgYmUgJ2Vycm9y
Jy4KK1BBU1M6IENvbnNvbGVNZXNzYWdlIHBhcmFtZXRlcnMubGVuZ3RoID09PSAxCitQQVNTOiBD
b25zb2xlTWVzc2FnZSBwYXJhbWV0ZXIgMCBzaG91bGQgaGF2ZSB0eXBlICdzdHJpbmcnLgorCist
LSBSdW5uaW5nIHRlc3QgY2FzZTogQ29uc29sZURlYnVnU3RyaW5nCitFdmFsdWF0aW5nIGV4cHJl
c3Npb246IGNvbnNvbGUuZGVidWcoImRlYnVnIik7CitQQVNTOiBDb25zb2xlTWVzc2FnZSB0eXBl
IHNob3VsZCBiZSAnY29uc29sZS1hcGknLgorUEFTUzogQ29uc29sZU1lc3NhZ2UgbGV2ZWwgc2hv
dWxkIGJlICdkZWJ1ZycuCitQQVNTOiBDb25zb2xlTWVzc2FnZSB0ZXh0IHNob3VsZCBiZSAnZGVi
dWcnLgorUEFTUzogQ29uc29sZU1lc3NhZ2UgcGFyYW1ldGVycy5sZW5ndGggPT09IDEKK1BBU1M6
IENvbnNvbGVNZXNzYWdlIHBhcmFtZXRlciAwIHNob3VsZCBoYXZlIHR5cGUgJ3N0cmluZycuCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUtbWVzc2Fn
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29uc29sZS1tZXNzYWdlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzFhZTUyNGViZjcxYzA2N2NiNzE3NmUwY2M5YjEwZDNjOWY3ZDAyMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbnNvbGUt
bWVzc2FnZS5odG1sCkBAIC0wLDAgKzEsMTAzIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Vz
L3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGdlbmVyYXRl
U2ltcGxlQ29uc29sZU1lc3NhZ2VzKCkKK3sKKyAgICBjb25zb2xlLmxvZygibG9nIik7CisgICAg
Y29uc29sZS5pbmZvKCJpbmZvIik7CisgICAgY29uc29sZS53YXJuKCJ3YXJuIik7CisgICAgY29u
c29sZS5lcnJvcigiZXJyb3IiKTsKKyAgICBjb25zb2xlLmRlYnVnKCJkZWJ1ZyIpOworfQorCitm
dW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmltcG9ydFNjcmlwdCgiY29uc29s
ZS10ZXN0LmpzIik7CisKKyAgICB2YXIgc3VpdGUgPSBuZXcgSW5zcGVjdG9yVGVzdC5Bc3luY1Rl
c3RTdWl0ZSgiQ29uc29sZS5NZXNzYWdlc0Zyb21Db21tYW5kTGluZUFQSSIpOworCisgICAgSW5z
cGVjdG9yVGVzdC5Db25zb2xlLmFkZFRlc3RDYXNlKHN1aXRlLCB7CisgICAgICAgIG5hbWU6ICJD
b25zb2xlTG9nU3RyaW5nIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0IGBjb25zb2xlLmxv
ZyhcImxvZ1wiKWAiLAorICAgICAgICBleHByZXNzaW9uOiAnY29uc29sZS5sb2coImxvZyIpOycs
CisgICAgICAgIGV4cGVjdGVkOiB7CisgICAgICAgICAgICBzb3VyY2U6ICdjb25zb2xlLWFwaScs
CisgICAgICAgICAgICBsZXZlbDogJ2xvZycsCisgICAgICAgICAgICB0ZXh0OiAnbG9nJywKKyAg
ICAgICAgICAgIHBhcmFtZXRlcnM6IFsnc3RyaW5nJ10KKyAgICAgICAgfQorICAgIH0pOworCisg
ICAgSW5zcGVjdG9yVGVzdC5Db25zb2xlLmFkZFRlc3RDYXNlKHN1aXRlLCB7CisgICAgICAgIG5h
bWU6ICJDb25zb2xlSW5mb1N0cmluZyIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdCBgY29u
c29sZS5pbmZvKFwiaW5mb1wiKWAiLAorICAgICAgICBleHByZXNzaW9uOiAnY29uc29sZS5pbmZv
KCJpbmZvIik7JywKKyAgICAgICAgZXhwZWN0ZWQ6IHsKKyAgICAgICAgICAgIHNvdXJjZTogJ2Nv
bnNvbGUtYXBpJywKKyAgICAgICAgICAgIGxldmVsOiAnaW5mbycsCisgICAgICAgICAgICB0ZXh0
OiAnaW5mbycsCisgICAgICAgICAgICBwYXJhbWV0ZXJzOiBbJ3N0cmluZyddCisgICAgICAgIH0K
KyAgICB9KTsKKworICAgIEluc3BlY3RvclRlc3QuQ29uc29sZS5hZGRUZXN0Q2FzZShzdWl0ZSwg
eworICAgICAgICBuYW1lOiAiQ29uc29sZVdhcm5TdHJpbmciLAorICAgICAgICBkZXNjcmlwdGlv
bjogIlRlc3QgYGNvbnNvbGUud2FybihcIndhcm5cIilgIiwKKyAgICAgICAgZXhwcmVzc2lvbjog
J2NvbnNvbGUud2Fybigid2FybiIpOycsCisgICAgICAgIGV4cGVjdGVkOiB7CisgICAgICAgICAg
ICBzb3VyY2U6ICdjb25zb2xlLWFwaScsCisgICAgICAgICAgICBsZXZlbDogJ3dhcm5pbmcnLAor
ICAgICAgICAgICAgdGV4dDogJ3dhcm4nLAorICAgICAgICAgICAgcGFyYW1ldGVyczogWydzdHJp
bmcnXQorICAgICAgICB9CisgICAgfSk7CisKKyAgICBJbnNwZWN0b3JUZXN0LkNvbnNvbGUuYWRk
VGVzdENhc2Uoc3VpdGUsIHsKKyAgICAgICAgbmFtZTogIkNvbnNvbGVFcnJvclN0cmluZyIsCisg
ICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdCBgY29uc29sZS5lcnJvcihcImVycm9yXCIpYCIsCisg
ICAgICAgIGV4cHJlc3Npb246ICdjb25zb2xlLmVycm9yKCJlcnJvciIpOycsCisgICAgICAgIGV4
cGVjdGVkOiB7CisgICAgICAgICAgICBzb3VyY2U6ICdjb25zb2xlLWFwaScsCisgICAgICAgICAg
ICBsZXZlbDogJ2Vycm9yJywKKyAgICAgICAgICAgIHRleHQ6ICdlcnJvcicsCisgICAgICAgICAg
ICBwYXJhbWV0ZXJzOiBbJ3N0cmluZyddCisgICAgICAgIH0KKyAgICB9KTsKKworICAgIEluc3Bl
Y3RvclRlc3QuQ29uc29sZS5hZGRUZXN0Q2FzZShzdWl0ZSwgeworICAgICAgICBuYW1lOiAiQ29u
c29sZURlYnVnU3RyaW5nIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0IGBjb25zb2xlLmRl
YnVnKFwiZGVidWdcIilgIiwKKyAgICAgICAgZXhwcmVzc2lvbjogJ2NvbnNvbGUuZGVidWcoImRl
YnVnIik7JywKKyAgICAgICAgZXhwZWN0ZWQ6IHsKKyAgICAgICAgICAgIHNvdXJjZTogJ2NvbnNv
bGUtYXBpJywKKyAgICAgICAgICAgIGxldmVsOiAnZGVidWcnLAorICAgICAgICAgICAgdGV4dDog
J2RlYnVnJywKKyAgICAgICAgICAgIHBhcmFtZXRlcnM6IFsnc3RyaW5nJ10KKyAgICAgICAgfQor
ICAgIH0pOworCisgICAgSW5zcGVjdG9yVGVzdC5hd2FpdENvbW1hbmQoeworICAgICAgICBtZXRo
b2Q6ICJDb25zb2xlLmVuYWJsZSIsCisgICAgICAgIHBhcmFtczoge30KKyAgICB9KQorICAgIC50
aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsK
KyAgICB9KQorICAgIC5jYXRjaChmYXRhbEVycm9yKTsKKworICAgIGZ1bmN0aW9uIGZhdGFsRXJy
b3IoZSkgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiVGVzdCBmYWlsZWQgd2l0aCBmYXRh
bCBlcnJvcjogIiArIEpTT04uc3RyaW5naWZ5KGUpKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5j
b21wbGV0ZVRlc3QoKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KKzxwPgorVGVzdHMgdGhhdCA8Y29kZT5jb25zb2xlLmxvZzwvY29kZT4g
YW5kIHJlbGF0ZWQgQVBJcyBjYXVzZSA8Y29kZT5Db25zb2xlLm1lc3NhZ2VBZGRlZDwvY29kZT4g
ZXZlbnRzIHRvIGJlIGdlbmVyYXRlZCB3aXRoIGNvcnJlY3Qgc291cmNlLCB0eXBlLCBsZXZlbCwg
YW5kIHBhcmFtZXRlciB0eXBlcy4KKzxicj4KKzwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2Nzcy1zb3VyY2UtbG9jYXRpb25z
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2Nzcy1zb3VyY2Ut
bG9jYXRpb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NWE2MzhkZjUwNDNiOTcxMThjMTQ0
MDQxM2JkNmFhMTMxM2UxZDdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2NvbnNvbGUvY3NzLXNvdXJjZS1sb2NhdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
OSBAQAorVGVzdHMgdGhhdCBDU1MgcGFyc2VyIHdhcm5pbmdzIGZyb20gaW5saW5lIHN0eWxlIHRh
Z3MgYW5kIGV4dGVybmFsIHN0eWxlc2hlZXRzIGFyZSBzZW50IHRvIHRoZSBjb25zb2xlIHdpdGgg
Y29ycmVjdCBsaW5lIGFuZCBjb2x1bW4gaW5mb3JtYXRpb24uCit7InNvdXJjZSI6ImNzcyIsImxl
dmVsIjoid2FybmluZyIsInRleHQiOiJJbnZhbGlkIENTUyBwcm9wZXJ0eSBkZWNsYXJhdGlvbiBh
dDogKiIsImxvY2F0aW9uIjoiY3NzLXNvdXJjZS1sb2NhdGlvbnMuaHRtbDo2OjIwIn0KK3sic291
cmNlIjoiY3NzIiwibGV2ZWwiOiJ3YXJuaW5nIiwidGV4dCI6IkludmFsaWQgQ1NTIHByb3BlcnR5
IGRlY2xhcmF0aW9uIGF0OiAqIiwibG9jYXRpb24iOiJjc3Mtc291cmNlLWxvY2F0aW9ucy5odG1s
Ojc6MTQifQoreyJzb3VyY2UiOiJjc3MiLCJsZXZlbCI6Indhcm5pbmciLCJ0ZXh0IjoiSW52YWxp
ZCBDU1MgcHJvcGVydHkgZGVjbGFyYXRpb24gYXQ6ICoiLCJsb2NhdGlvbiI6ImNzcy1zb3VyY2Ut
bG9jYXRpb25zLmh0bWw6ODo3In0KK3sic291cmNlIjoiY3NzIiwibGV2ZWwiOiJ3YXJuaW5nIiwi
dGV4dCI6IkludmFsaWQgQ1NTIHByb3BlcnR5IGRlY2xhcmF0aW9uIGF0OiAqIiwibG9jYXRpb24i
OiJjc3Mtc291cmNlLWxvY2F0aW9ucy5odG1sOjEwOjgifQoreyJzb3VyY2UiOiJjc3MiLCJsZXZl
bCI6Indhcm5pbmciLCJ0ZXh0IjoiSW52YWxpZCBDU1MgcHJvcGVydHkgZGVjbGFyYXRpb24gYXQ6
ICoiLCJsb2NhdGlvbiI6ImVycm9ycy5jc3M6MTo3In0KK3sic291cmNlIjoiY3NzIiwibGV2ZWwi
OiJ3YXJuaW5nIiwidGV4dCI6IkludmFsaWQgQ1NTIHByb3BlcnR5IGRlY2xhcmF0aW9uIGF0OiAq
IiwibG9jYXRpb24iOiJlcnJvcnMuY3NzOjE6MjkifQoreyJzb3VyY2UiOiJjc3MiLCJsZXZlbCI6
Indhcm5pbmciLCJ0ZXh0IjoiSW52YWxpZCBDU1MgcHJvcGVydHkgZGVjbGFyYXRpb24gYXQ6ICoi
LCJsb2NhdGlvbiI6ImVycm9ycy5jc3M6NDo1In0KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUvY3NzLXNvdXJjZS1sb2NhdGlvbnMuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jb25zb2xlL2Nzcy1zb3VyY2UtbG9jYXRpb25zLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTE2Mzk4NTU1MjdiYWIwNzc2NWFmOWE5NjEwYWY1MGEyZGNmY2M0YQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2Nzcy1zb3VyY2UtbG9jYXRpb25zLmh0
bWwKQEAgLTAsMCArMSw1NyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10
ZXN0LmpzIj48L3NjcmlwdD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2Vz
L2Vycm9ycy5jc3MiPgorICA8c3R5bGU+ICAgIGRpdiB7ICogY29sb3I6IHJlZDsgfTwvc3R5bGU+
Cis8c3R5bGU+ZGl2IHsgKiBjb2xvcjogcmVkOyB9CitkaXYgeyAqIGNvbG9yOiByZWQ7IH0KKyAg
IGRpdiB7CisgICAgICAgKgorICAgICAgIGNvbG9yOgorICAgICAgIHJlZDsKKyAgIH0KKzwvc3R5
bGU+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5pbXBv
cnRTY3JpcHQoImNvbnNvbGUtdGVzdC5qcyIpOworCisgICAgdmFyIGNvbnNvbGVNZXNzYWdlQ291
bnQgPSAwOworICAgIGNvbnN0IGV4cGVjdGVkQ29uc29sZU1lc3NhZ2VDb3VudCA9IDc7CisKKyAg
ICAvLyBEdWUgdG8gdGhlIGRpZmZpY3VsdHkgb2YgdGVzdGluZyBpbmxpbmUgc3R5bGUgdGFncyBp
biBhIHRlc3QgY2FzZSwgdGhpcyB0ZXN0CisgICAgLy8gaXMgYSByZWZlcmVuY2UgdGVzdCB0aGF0
IGNvbnRhaW5zIHNlcmlhbGl6ZWQgQ29uc29sZS5tZXNzYWdlQWRkZWQgZXZlbnQgZGF0YS4KKyAg
ICBJbnNwZWN0b3JUZXN0LmFkZEV2ZW50TGlzdGVuZXIoeworICAgICAgICBldmVudDogIkNvbnNv
bGUubWVzc2FnZUFkZGVkIiwKKyAgICAgICAgbGlzdGVuZXI6IGZ1bmN0aW9uKG1lc3NhZ2VPYmpl
Y3QpIHsKKyAgICAgICAgICAgIHZhciBtZXNzYWdlID0gSW5zcGVjdG9yVGVzdC5Db25zb2xlLnNh
bml0aXplQ29uc29sZU1lc3NhZ2UobWVzc2FnZU9iamVjdCk7CisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZyhKU09OLnN0cmluZ2lmeShtZXNzYWdlKSk7CisKKyAgICAgICAgICAgIGlmICgr
K2NvbnNvbGVNZXNzYWdlQ291bnQgIT09IGV4cGVjdGVkQ29uc29sZU1lc3NhZ2VDb3VudCkKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXdhaXRD
b21tYW5kKHsKKyAgICAgICAgICAgICAgICBtZXRob2Q6ICJDb25zb2xlLmRpc2FibGUiLAorICAg
ICAgICAgICAgICAgIHBhcmFtczoge30KKyAgICAgICAgICAgIH0pCisgICAgICAgICAgICAudGhl
bihmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIC8vIFN0YXJ0
IHRoZSB0ZXN0LgorICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoeworICAgICAgICBtZXRo
b2Q6ICJDb25zb2xlLmVuYWJsZSIsCisgICAgICAgIHBhcmFtczoge30KKyAgICB9KTsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+CitUZXN0cyB0
aGF0IENTUyBwYXJzZXIgd2FybmluZ3MgZnJvbSBpbmxpbmUgc3R5bGUgdGFncyBhbmQgZXh0ZXJu
YWwgc3R5bGVzaGVldHMgYXJlIHNlbnQgdG8gdGhlIGNvbnNvbGUgd2l0aCBjb3JyZWN0IGxpbmUg
YW5kIGNvbHVtbiBpbmZvcm1hdGlvbi48YnI+Cis8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9qcy1zb3VyY2UtbG9jYXRpb25z
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2pzLXNvdXJjZS1s
b2NhdGlvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5ZmU4NTg5MGJjZmE4M2M4OTU5YTIw
MWRkZTA3MDYzODZkODE3MzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvY29uc29sZS9qcy1zb3VyY2UtbG9jYXRpb25zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4
IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogZXJyb3Igc2NyaXB0CitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTogd2FybiBzY3JpcHQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA1OiBlcnJvciBz
Y3JpcHQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA2OiB3YXJuIHNjcmlwdAorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDY6IFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1
YXRpbmcgJ1tdLngueCcpCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgODogd2FybiAxCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgODogZXJyb3IgMQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDk6IGVycm9y
IDIKK1Rlc3RzIHRoYXQgSmF2YVNjcmlwdCBlcnJvcnMgYW5kIHdhcm5pbmdzIGZyb20gaW5saW5l
IHNjcmlwdCB0YWdzIGFuZCBleHRlcm5hbCBmaWxlcyBhcmUgc2VudCB0byB0aGUgY29uc29sZSB3
aXRoIGNvcnJlY3QgbGluZSBhbmQgY29sdW1uIGluZm9ybWF0aW9uLgoreyJzb3VyY2UiOiJjb25z
b2xlLWFwaSIsImxldmVsIjoiZXJyb3IiLCJ0ZXh0IjoiZXJyb3Igc2NyaXB0IiwibG9jYXRpb24i
OiJlcnJvcnMuanM6MToxNCIsInBhcmFtZXRlcnMiOlt7InR5cGUiOiJzdHJpbmcifV19Cit7InNv
dXJjZSI6ImNvbnNvbGUtYXBpIiwibGV2ZWwiOiJ3YXJuaW5nIiwidGV4dCI6Indhcm4gc2NyaXB0
IiwibG9jYXRpb24iOiJlcnJvcnMuanM6MTo0NCIsInBhcmFtZXRlcnMiOlt7InR5cGUiOiJzdHJp
bmcifV19Cit7InNvdXJjZSI6ImNvbnNvbGUtYXBpIiwibGV2ZWwiOiJlcnJvciIsInRleHQiOiJl
cnJvciBzY3JpcHQiLCJsb2NhdGlvbiI6ImVycm9ycy5qczo1OjE4IiwicGFyYW1ldGVycyI6W3si
dHlwZSI6InN0cmluZyJ9XX0KK3sic291cmNlIjoiY29uc29sZS1hcGkiLCJsZXZlbCI6Indhcm5p
bmciLCJ0ZXh0Ijoid2FybiBzY3JpcHQiLCJsb2NhdGlvbiI6ImVycm9ycy5qczo2OjE3IiwicGFy
YW1ldGVycyI6W3sidHlwZSI6InN0cmluZyJ9XX0KK3sic291cmNlIjoiamF2YXNjcmlwdCIsImxl
dmVsIjoiZXJyb3IiLCJ0ZXh0IjoiVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVj
dCAoZXZhbHVhdGluZyAnW10ueC54JykiLCJsb2NhdGlvbiI6ImpzLXNvdXJjZS1sb2NhdGlvbnMu
aHRtbDo2OjE4In0KK3sic291cmNlIjoiY29uc29sZS1hcGkiLCJsZXZlbCI6Indhcm5pbmciLCJ0
ZXh0Ijoid2FybiAxIiwibG9jYXRpb24iOiJqcy1zb3VyY2UtbG9jYXRpb25zLmh0bWw6ODoxMyIs
InBhcmFtZXRlcnMiOlt7InR5cGUiOiJzdHJpbmcifV19Cit7InNvdXJjZSI6ImNvbnNvbGUtYXBp
IiwibGV2ZWwiOiJlcnJvciIsInRleHQiOiJlcnJvciAxIiwibG9jYXRpb24iOiJqcy1zb3VyY2Ut
bG9jYXRpb25zLmh0bWw6ODozOCIsInBhcmFtZXRlcnMiOlt7InR5cGUiOiJzdHJpbmcifV19Cit7
InNvdXJjZSI6ImNvbnNvbGUtYXBpIiwibGV2ZWwiOiJlcnJvciIsInRleHQiOiJlcnJvciAyIiwi
bG9jYXRpb24iOiJqcy1zb3VyY2UtbG9jYXRpb25zLmh0bWw6OToxNyIsInBhcmFtZXRlcnMiOlt7
InR5cGUiOiJzdHJpbmcifV19CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2pzLXNvdXJjZS1sb2NhdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
b25zb2xlL2pzLXNvdXJjZS1sb2NhdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZjcxNGZmOTNmZGIx
ZjRmMGM3NTNmZTRhMGM0MjhkY2E4ODE3ODc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2NvbnNvbGUvanMtc291cmNlLWxvY2F0aW9ucy5odG1sCkBAIC0wLDAgKzEs
NDQgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Vycm9ycy5qcyI+PC9zY3JpcHQ+CisgIDxzY3Jp
cHQ+ICAgW10ueC54ICAgPC9zY3JpcHQ+Cis8c2NyaXB0PgorY29uc29sZS53YXJuKCJ3YXJuIDEi
KTsgY29uc29sZS5lcnJvcigiZXJyb3IgMSIpOworICAgY29uc29sZS5lcnJvcigiZXJyb3IgMiIp
OworPC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9y
VGVzdC5pbXBvcnRTY3JpcHQoImNvbnNvbGUtdGVzdC5qcyIpOworCisgICAgdmFyIGNvbnNvbGVN
ZXNzYWdlQ291bnQgPSAwOworICAgIGNvbnN0IGV4cGVjdGVkQ29uc29sZU1lc3NhZ2VDb3VudCA9
IDg7CisKKyAgICAvLyBEdWUgdG8gdGhlIGRpZmZpY3VsdHkgb2YgdGVzdGluZyBpbmxpbmUgc2Ny
aXB0IHRhZ3MgaW4gYSB0ZXN0IGNhc2UsIHRoaXMgdGVzdAorICAgIC8vIGlzIGEgcmVmZXJlbmNl
IHRlc3QgdGhhdCBjb250YWlucyBzZXJpYWxpemVkIENvbnNvbGUubWVzc2FnZUFkZGVkIGV2ZW50
IGRhdGEuCisgICAgSW5zcGVjdG9yVGVzdC5hZGRFdmVudExpc3RlbmVyKHsKKyAgICAgICAgZXZl
bnQ6ICJDb25zb2xlLm1lc3NhZ2VBZGRlZCIsCisgICAgICAgIGxpc3RlbmVyOiBmdW5jdGlvbiht
ZXNzYWdlT2JqZWN0KSB7CisgICAgICAgICAgICB2YXIgbWVzc2FnZSA9IEluc3BlY3RvclRlc3Qu
Q29uc29sZS5zYW5pdGl6ZUNvbnNvbGVNZXNzYWdlKG1lc3NhZ2VPYmplY3QpOworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coSlNPTi5zdHJpbmdpZnkobWVzc2FnZSkpOworCisgICAgICAg
ICAgICBpZiAoKytjb25zb2xlTWVzc2FnZUNvdW50ID09PSBleHBlY3RlZENvbnNvbGVNZXNzYWdl
Q291bnQpCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAg
ICAgICAgfQorICAgIH0pOworCisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCh7CisgICAg
ICAgIG1ldGhvZDogIkNvbnNvbGUuZW5hYmxlIiwKKyAgICAgICAgcGFyYW1zOiB7fQorICAgIH0p
OworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD4K
K1Rlc3RzIHRoYXQgSmF2YVNjcmlwdCBlcnJvcnMgYW5kIHdhcm5pbmdzIGZyb20gaW5saW5lIHNj
cmlwdCB0YWdzIGFuZCBleHRlcm5hbCBmaWxlcyBhcmUgc2VudCB0byB0aGUgY29uc29sZSB3aXRo
IGNvcnJlY3QgbGluZSBhbmQgY29sdW1uIGluZm9ybWF0aW9uLjxicj4KKzwvcD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL3Jlc291
cmNlcy9lcnJvcnMuY3NzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvcmVzb3VyY2Vz
L2Vycm9ycy5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjg1YjQyMWE2ZjBjM2ZlNTRkYjAwMDczMTBkN2E4NGFm
NWJiZmM0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xl
L3Jlc291cmNlcy9lcnJvcnMuY3NzCkBAIC0wLDAgKzEsNyBAQAorZGl2IHsgKiBjb2xvcjogcmVk
OyB9IGRpdiB7ICogY29sb3I6IHJlZDsgfQorCitkaXYgeworICAgICoKKyAgICBjb2xvcjoKKyAg
ICByZWQ7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9yZXNv
dXJjZXMvZXJyb3JzLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvcmVzb3VyY2Vz
L2Vycm9ycy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDM3ZWFlYzA3NzNiZTg2YTYxMTRlODA2YTFlYmYzYjJj
Y2IzMTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUv
cmVzb3VyY2VzL2Vycm9ycy5qcwpAQCAtMCwwICsxLDkgQEAKK2NvbnNvbGUuZXJyb3IoImVycm9y
IHNjcmlwdCIpOyBjb25zb2xlLndhcm4oIndhcm4gc2NyaXB0Iik7CisKKworZnVuY3Rpb24gZm9v
KCkgeworICAgIGNvbnNvbGUuZXJyb3IoImVycm9yIHNjcmlwdCIpOworICAgIGNvbnNvbGUud2Fy
bigid2FybiBzY3JpcHQiKTsKK30KKworZm9vKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvY29uc29sZS94LWZyYW1lLW9wdGlvbnMtbWVzc2FnZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS94LWZyYW1lLW9wdGlvbnMtbWVzc2FnZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjk4ZmQ3NWU0YWQzYjJkODdkZDVmNjBlYTc2YTE1ZTE3MWMy
YjBlOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL3gt
ZnJhbWUtb3B0aW9ucy1tZXNzYWdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK0NPTlNP
TEUgTUVTU0FHRTogbGluZSA0MjogUmVmdXNlZCB0byBkaXNwbGF5ICd4LWZyYW1lLW9wdGlvbnMt
bWVzc2FnZS5odG1sJyBpbiBhIGZyYW1lIGJlY2F1c2UgaXQgc2V0ICdYLUZyYW1lLU9wdGlvbnMn
IHRvICdkZW55Jy4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IENvbnNvbGUuWEZyYW1lT3B0
aW9uc01lc3NhZ2VzCistLSBSdW5uaW5nIHRlc3QgY2FzZTogWEZyYW1lT3B0aW9uc0RlbnkKK0V2
YWx1YXRpbmcgZXhwcmVzc2lvbjogdHJpZ2dlclhGcmFtZU9wdGlvbkRlbnkoKTsKK1BBU1M6IENv
bnNvbGVNZXNzYWdlIHR5cGUgc2hvdWxkIGJlICdzZWN1cml0eScuCitQQVNTOiBDb25zb2xlTWVz
c2FnZSBsZXZlbCBzaG91bGQgYmUgJ2Vycm9yJy4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NvbnNvbGUveC1mcmFtZS1vcHRpb25zLW1lc3NhZ2UuaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9jb25zb2xlL3gtZnJhbWUtb3B0aW9ucy1tZXNzYWdlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMDg4NDViNjIyN2EyMzUxYWY3NTRiYWQ4OTBiYTg5OGRkMTJhMGM3NQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL3gtZnJhbWUtb3B0aW9ucy1t
ZXNzYWdlLmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9w
cm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sK
KyAgICBJbnNwZWN0b3JUZXN0LmltcG9ydFNjcmlwdCgiY29uc29sZS10ZXN0LmpzIik7CisKKyAg
ICBsZXQgc3VpdGUgPSBuZXcgSW5zcGVjdG9yVGVzdC5Bc3luY1Rlc3RTdWl0ZSgiQ29uc29sZS5Y
RnJhbWVPcHRpb25zTWVzc2FnZXMiKTsKKworICAgIEluc3BlY3RvclRlc3QuQ29uc29sZS5hZGRU
ZXN0Q2FzZShzdWl0ZSwgeworICAgICAgICBuYW1lOiAiWEZyYW1lT3B0aW9uc0RlbnkiLAorICAg
ICAgICBkZXNjcmlwdGlvbjogIkVuc3VyZSB0aGF0IGEgY29uc29sZSBtZXNzYWdlIGlzIGxvZ2dl
ZCB3aGVuIGVuZm9yY2luZyBhbiBYLUZyYW1lLU9wdGlvbnMgcG9saWN5LiBJbiB0aGlzIGNhc2Us
IHNldHRpbmcgWC1GcmFtZS1PcHRpb25zOiAnZGVueScgbWVhbnMgdGhlIGlmcmFtZSBkb2VzIG5v
dCB3YW50IHRvIGJlIGVtYmVkZGVkIGluIHRoZSB0ZXN0IHBhZ2UuIiwKKyAgICAgICAgZXhwcmVz
c2lvbjogInRyaWdnZXJYRnJhbWVPcHRpb25EZW55KCk7IiwKKyAgICAgICAgZXhwZWN0ZWQ6IHtz
b3VyY2U6ICdzZWN1cml0eScsIGxldmVsOiAnZXJyb3InfQorICAgIH0pOworCisgICAgSW5zcGVj
dG9yVGVzdC5hd2FpdENvbW1hbmQoeworICAgICAgICBtZXRob2Q6ICJDb25zb2xlLmVuYWJsZSIs
CisgICAgICAgIHBhcmFtczoge30KKyAgICB9KQorICAgIC50aGVuKGZ1bmN0aW9uKCkgeworICAg
ICAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKKyAgICB9KQorICAgIC5jYXRjaChm
YXRhbEVycm9yKTsKKworICAgIGZ1bmN0aW9uIGZhdGFsRXJyb3IoZSkgeworICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiVGVzdCBmYWlsZWQgd2l0aCBmYXRhbCBlcnJvcjogIiArIEpTT04uc3Ry
aW5naWZ5KGUpKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgPGlm
cmFtZSBpZD0iZGVuaWVkIj48L2lmcmFtZT4KKyAgPHNjcmlwdD4KKyAgZnVuY3Rpb24gdHJpZ2dl
clhGcmFtZU9wdGlvbkRlbnkoKQorICB7CisgICAgbGV0IGRlbmllZEZyYW1lID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2RlbmllZCcpOworICAgIGxldCBkZW5pZWREb2N1bWVudCA9IGRlbmll
ZEZyYW1lLmNvbnRlbnRXaW5kb3cuZG9jdW1lbnQ7CisgICAgZGVuaWVkRG9jdW1lbnQud3JpdGUo
JzxtZXRhIGh0dHAtZXF1aXY9IlgtRnJhbWUtT3B0aW9ucyIgY29udGVudD0iZGVueSIvPicpOwor
ICB9CisgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2Nzcy9nZXRTdXBwb3J0ZWRDU1NQcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2V0U3VwcG9ydGVkQ1NTUHJvcGVydGllcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYWYwYjJjYzk2NzhiMDdkNDc1ZmU2Yzc1NTg1OTNiNWZhYTY5
YTAyYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2V0U3Vw
cG9ydGVkQ1NTUHJvcGVydGllcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitib3gtc2hh
ZG93IGlzIHN1cHBvcnRlZAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3Nz
L2dldFN1cHBvcnRlZENTU1Byb3BlcnRpZXMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
c3MvZ2V0U3VwcG9ydGVkQ1NTUHJvcGVydGllcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhYWVjZjlkYzM2
YzE3MDcwZWI0MzliNmFlOWI5MmE0NmU4MGY3OGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY3NzL2dldFN1cHBvcnRlZENTU1Byb3BlcnRpZXMuaHRtbApAQCAtMCww
ICsxLDMyIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3Rv
clRlc3Quc2VuZENvbW1hbmQoIkNTUy5nZXRTdXBwb3J0ZWRDU1NQcm9wZXJ0aWVzIiwge30sIGZ1
bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKKyAgICAgICAgaWYgKCJlcnJvciIgaW4gbWVzc2FnZU9i
amVjdCkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKG1lc3NhZ2VPYmplY3QuZXJyb3Iu
bWVzc2FnZSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgdmFyIGNzc1Byb3BlcnR5ID0g
ImJveC1zaGFkb3ciOworICAgICAgICAgICAgdmFyIGVudHJpZXMgPSBtZXNzYWdlT2JqZWN0WyJy
ZXN1bHQiXVsiY3NzUHJvcGVydGllcyJdOworCisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IGVudHJpZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICBpZiAoZW50cmllc1tp
XS5uYW1lID09PSBjc3NQcm9wZXJ0eSkgeworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZyhlbnRyaWVzW2ldLm5hbWUgKyAiIGlzIHN1cHBvcnRlZCIpOworICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGlmIChpID09PSBlbnRyaWVzLmxlbmd0aCkKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZyhjc3NQcm9wZXJ0eSArICIgaXMgTk9UIHN1cHBvcnRlZCIpOworICAgICAgICB9
CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9KTsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25Mb2FkPSJydW5UZXN0KCkiPgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9p
bnQtYWN0aW9uLWRldGFjaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvYnJlYWtwb2ludC1hY3Rpb24tZGV0YWNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
NzMxYjI3OTY2MjgyNDkxNzBkMjMwMDJiZDk1MDBjZjUyNDQxNzE5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWRldGFj
aC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitDbG9zaW5nIHRoZSBpbnNwZWN0b3Igd2hp
bGUgZXhlY3V0aW5nIHRoZSBjb2RlIGZvciBhIGJyZWFrcG9pbnQgYWN0aW9uIHNob3VsZCBjb250
aW51ZSBleGVjdXRpbmcgY29kZS4KKworRm91bmQgYnJlYWtwb2ludC5qcworaW5zaWRlIGJyZWFr
cG9pbnRXaXRoQ29uZGl0aW9uIGE6KDEpIGI6KDIpIGErYjooMykKK0Nsb3NpbmcgdGhlIGluc3Bl
Y3Rvci4KK1BBU1M6IFRlc3QgZGlkIG5vdCBjcmFzaCBhZnRlciBkZWJ1Z2dlciBkaXNjb25uZWN0
ZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3Bv
aW50LWFjdGlvbi1kZXRhY2guaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9i
cmVha3BvaW50LWFjdGlvbi1kZXRhY2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZjBmMDkxNmRhMzEzOTRk
NTA0OWYwNGE2MTk5OGU0ZmU1ZmQ5NjM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWRldGFjaC5odG1sCkBAIC0wLDAg
KzEsNTkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9icmVha3BvaW50LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlv
biBydW5CcmVha3BvaW50V2l0aENvbmRpdGlvbigpCit7CisgICAgLy8gVGhlIGRlYnVnZ2VyIHNo
b3VsZCBoaXQgYSBicmVha3BvaW50IGluc2lkZSB0aGUgYnJlYWtwb2ludFdpdGhDb25kaXRpb24g
Y2FsbC4KKyAgICBicmVha3BvaW50V2l0aENvbmRpdGlvbigxLCAyKTsKKyAgICAvLyBJZiB3ZSBn
ZXQgaGVyZSBpdCBtZWFucyB0aGF0IHRoZSBkZWJ1Z2dlciB3YXMgZGlzY29ubmVjdGVkIGFuZCB0
aGUgZXhlY3V0aW9uIGNvbnRpbnVlZCBhcyB1c3VhbC4KKyAgICBsb2coIlBBU1M6IFRlc3QgZGlk
IG5vdCBjcmFzaCBhZnRlciBkZWJ1Z2dlciBkaXNjb25uZWN0ZWQuIik7CisgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7Cit9CisKKy8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJ5IHRoZSBi
cmVha3BvaW50IGFjdGlvbi4KK2Z1bmN0aW9uIGRpc2Nvbm5lY3QoKQoreworICAgIGxvZygiQ2xv
c2luZyB0aGUgaW5zcGVjdG9yLiIpOworICAgIHdpbmRvdy5pbnRlcm5hbHMuY2xvc2VEdW1teUlu
c3BlY3RvckZyb250ZW5kKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3Rv
clRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1l
c3NhZ2VPYmplY3QpCisgICAgeworICAgICAgICBpZiAoL3Jlc291cmNlc1wvYnJlYWtwb2ludFwu
anMkLy50ZXN0KG1lc3NhZ2VPYmplY3QucGFyYW1zLnVybCkpIHsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJGb3VuZCBicmVha3BvaW50LmpzIik7CisgICAgICAgICAgICB2YXIgYnJl
YWtwb2ludCA9IHsKKyAgICAgICAgICAgICAgICBsb2NhdGlvbjogeworICAgICAgICAgICAgICAg
ICAgICBzY3JpcHRJZDogbWVzc2FnZU9iamVjdC5wYXJhbXMuc2NyaXB0SWQsCisgICAgICAgICAg
ICAgICAgICAgIGxpbmVOdW1iZXI6IDgsCisgICAgICAgICAgICAgICAgICAgIGNvbHVtbk51bWJl
cjogMAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgb3B0aW9uczogeworICAg
ICAgICAgICAgICAgICAgICBhY3Rpb25zOiBbCisgICAgICAgICAgICAgICAgICAgICAgICB7dHlw
ZTogImV2YWx1YXRlIiwgZGF0YTogImRpc2Nvbm5lY3QoKSJ9LAorICAgICAgICAgICAgICAgICAg
ICAgICAge3R5cGU6ICJldmFsdWF0ZSIsIGRhdGE6ICJsb2coJ0ZBSUw6IFRoaXMgYWN0aW9uIHNo
b3VsZCBub3QgYmUgZXhlY3V0ZWQuJykifQorICAgICAgICAgICAgICAgICAgICBdCisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2Vu
ZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnQiLCBicmVha3BvaW50LCBJbnNwZWN0b3JU
ZXN0LmNoZWNrRm9yRXJyb3IpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAicnVuQnJlYWtwb2ludFdpdGhDb25k
aXRpb24oKSJ9KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEluc3BlY3RvclRlc3QuZXZlbnRI
YW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAg
eworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDogUGF1c2VkIGluIGRlYnVnZ2VyOiBy
ZWFzb24gPSBcIiIgKyBtZXNzYWdlT2JqZWN0LnBhcmFtcy5yZWFzb24gKyAiXCIiKTsKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JU
ZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Cit9Cis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPkNsb3NpbmcgdGhlIGluc3BlY3Rv
ciB3aGlsZSBleGVjdXRpbmcgdGhlIGNvZGUgZm9yIGEgYnJlYWtwb2ludCBhY3Rpb24gc2hvdWxk
IGNvbnRpbnVlIGV4ZWN1dGluZyBjb2RlLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1ldmFs
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24t
ZXZhbC5odG1sCmluZGV4IDNmOGRlMDMxZTYxYjc0MDIzZDE4NWQwYmM0OGJkMTY2ZmM3YzkyYmEu
LmFjNzE1M2MzYjAyMjUxMDBkY2YyMjlhZjNlN2YyMzQwOWNmYjMxMmMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi1ldmFsLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLWV2
YWwuaHRtbApAQCAtNCw3ICs0LDcgQEAKIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtU2VjdXJp
dHktUG9saWN5IiBjb250ZW50PSJzY3JpcHQtc3JjICdzZWxmJyAndW5zYWZlLWlubGluZSciPgog
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi9yZXNvdXJjZXMvYnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMvc2NyaXB0LWZvci1icmVha3Bv
aW50LWFjdGlvbnMuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIGZ1bmN0aW9uIHJ1bkJyZWFrcG9p
bnRBY3Rpb25zKCkKIHsKQEAgLTIyLDcgKzIyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRkZWQsIGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAg
ICAgIHZhciBzY3JpcHRPYmplY3QgPSBldmVudC5kYXRhLnNjcmlwdDsKIAotICAgICAgICBpZiAo
IS9icmVha3BvaW50XC5qcyQvLnRlc3Qoc2NyaXB0T2JqZWN0LnVybCkpCisgICAgICAgIGlmICgh
L3NjcmlwdFwtZm9yXC1icmVha3BvaW50XC1hY3Rpb25zXC5qcyQvLnRlc3Qoc2NyaXB0T2JqZWN0
LnVybCkpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdmFyIGxvY2F0aW9uID0gc2Ny
aXB0T2JqZWN0LmNyZWF0ZVNvdXJjZUNvZGVMb2NhdGlvbig0LCAwKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWFjdGlvbi13aXRoLWV4Y2Vw
dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtw
b2ludC1hY3Rpb24td2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJkNDEw
ZjkwOWJlOGQ5OGYzM2E4NDZhNTkyM2VhNWNiNGRhZjQ5MDQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1hY3Rpb24td2l0aC1leGNl
cHRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDE6IFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3Ro
aXMud2lsbC5jYXVzZScpCitUaGUgZGVidWdnZXIgc2hvdWxkIG5vdCBwYXVzZSBvbiBleGNlcHRp
b25zIHRocm93biB3aGlsZSBleGVjdXRpbmcgdGhlIGJyZWFrcG9pbnQgYWN0aW9ucy4KKworRm91
bmQgYnJlYWtwb2ludC5qcworaW5zaWRlIGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uIGE6KDEpIGI6
KDIpIGErYjooMykKK1BBU1M6IEJyZWFrcG9pbnQgYWN0aW9uIGV4ZWN1dGVkLCBidXQgdGhlIGV4
Y2VwdGlvbiBkaWQgbm90IGNhdXNlIHRoZSBkZWJ1Z2dlciB0byBwYXVzZS4KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLXdpdGgt
ZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2lu
dC1hY3Rpb24td2l0aC1leGNlcHRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MTBiNDE2NzY4YWVmNjdi
MWZhZDU0ZGU2MGEwNTdjNzA2ZDc5YTMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtYWN0aW9uLXdpdGgtZXhjZXB0aW9uLmh0bWwK
QEAgLTAsMCArMSw1NiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2JyZWFrcG9pbnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1
Z2dlci5zY3JpcHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgeworICAg
ICAgICBpZiAoL3Jlc291cmNlc1wvYnJlYWtwb2ludFwuanMkLy50ZXN0KG1lc3NhZ2VPYmplY3Qu
cGFyYW1zLnVybCkpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGb3VuZCBicmVh
a3BvaW50LmpzIik7CisKKyAgICAgICAgICAgIHZhciBicmVha3BvaW50ID0geworICAgICAgICAg
ICAgICAgIGxvY2F0aW9uOiB7CisgICAgICAgICAgICAgICAgICAgIHNjcmlwdElkOiBtZXNzYWdl
T2JqZWN0LnBhcmFtcy5zY3JpcHRJZCwKKyAgICAgICAgICAgICAgICAgICAgbGluZU51bWJlcjog
OCwKKyAgICAgICAgICAgICAgICAgICAgY29sdW1uTnVtYmVyOiAwCisgICAgICAgICAgICAgICAg
fSwKKyAgICAgICAgICAgICAgICBvcHRpb25zOiB7CisgICAgICAgICAgICAgICAgICAgIGF1dG9D
b250aW51ZTogdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgYWN0aW9uczogWworICAgICAgICAg
ICAgICAgICAgICAgICAge3R5cGU6ICJldmFsdWF0ZSIsIGRhdGE6ICJ0aGlzLndpbGwuY2F1c2Uu
ZXhjZXB0aW9uIn0KKyAgICAgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIH07CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1
Z2dlci5zZXRCcmVha3BvaW50IiwgYnJlYWtwb2ludCwgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVy
cm9yKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNl
dFBhdXNlT25FeGNlcHRpb25zIiwge3N0YXRlOiAiYWxsIn0sIEluc3BlY3RvclRlc3QuY2hlY2tG
b3JFcnJvcik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1l
LmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJicmVha3BvaW50V2l0aENvbmRpdGlvbigxLDIpIn0s
IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmNoZWNrRm9yRXJyb3IobWVzc2FnZU9iamVjdCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIlBBU1M6IEJyZWFrcG9pbnQgYWN0aW9uIGV4ZWN1dGVkLCBidXQgdGhlIGV4Y2Vw
dGlvbiBkaWQgbm90IGNhdXNlIHRoZSBkZWJ1Z2dlciB0byBwYXVzZS4iKQorICAgICAgICAgICAg
ICAgIGNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5j
dGlvbihtZXNzYWdlT2JqZWN0KQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZB
SUw6IFBhdXNlZCBpbiBkZWJ1Z2dlcjogcmVhc29uID0gXCIiICsgbWVzc2FnZU9iamVjdC5wYXJh
bXMucmVhc29uICsgIlwiIik7CisgICAgICAgIGNvbXBsZXRlVGVzdCgpOworICAgIH0KKworICAg
IGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpCisgICAgeworICAgICAgICAvLyBSZXNldCB0aGUgcGF1
c2VPbkV4Y2VwdGlvbiBzdGF0ZSBiZWZvcmUgZW5kaW5nIHRoZSB0ZXN0LgorICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyIsIHtz
dGF0ZTogIm5vbmUifSk7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Cisg
ICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwg
e30pOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8
cD5UaGUgZGVidWdnZXIgc2hvdWxkIG5vdCBwYXVzZSBvbiBleGNlcHRpb25zIHRocm93biB3aGls
ZSBleGVjdXRpbmcgdGhlIGJyZWFrcG9pbnQgYWN0aW9ucy48L3A+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1j
b25kaXRpb24tZGV0YWNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi1kZXRhY2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
Ljc4ODZkNzBmZmFmODdlNGUwZDBlMjIwYzczZTU2ZTI4Y2YxOGIxOWQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24t
ZGV0YWNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK0RlYnVnZ2VyLnNldEJyZWFrcG9p
bnQgd2l0aCBhbiBhY3Rpb24gdGhhdCB0aHJvd3MgYW4gZXhjZXB0aW9uIHNob3VsZCBub3QgcGF1
c2UgdGhlIGRlYnVnZ2VyLgorCitGb3VuZCBicmVha3BvaW50LmpzCitpbnNpZGUgYnJlYWtwb2lu
dFdpdGhDb25kaXRpb24gYTooMSkgYjooMikgYStiOigzKQorQ2xvc2luZyB0aGUgaW5zcGVjdG9y
LgorUEFTUzogVGVzdCBkaWQgbm90IGNyYXNoIGFmdGVyIGRlYnVnZ2VyIGRpc2Nvbm5lY3RlZC4K
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQt
Y29uZGl0aW9uLWRldGFjaC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2Jy
ZWFrcG9pbnQtY29uZGl0aW9uLWRldGFjaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhOTg0MDNhNTI2MDdh
MTlhZDY4ZTRlN2ZkZmEyZjAyMTIxZWI0M2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24tZGV0YWNoLmh0bWwKQEAg
LTAsMCArMSw1OSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rl
c3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2JyZWFrcG9pbnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1
bmN0aW9uIHJ1bkJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uKCkKK3sKKyAgICAvLyBUaGUgZGVidWdn
ZXIgc2hvdWxkIGhpdCBhIGJyZWFrcG9pbnQgaW5zaWRlIHRoZSBicmVha3BvaW50V2l0aENvbmRp
dGlvbiBjYWxsLgorICAgIGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uKDEsIDIpOworICAgIC8vIElm
IHdlIGdldCBoZXJlIGl0IG1lYW5zIHRoYXQgdGhlIGRlYnVnZ2VyIHdhcyBkaXNjb25uZWN0ZWQg
YW5kIHRoZSBleGVjdXRpb24gY29udGludWVkIGFzIHVzdWFsLgorICAgIGxvZygiUEFTUzogVGVz
dCBkaWQgbm90IGNyYXNoIGFmdGVyIGRlYnVnZ2VyIGRpc2Nvbm5lY3RlZC4iKTsKKyAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkg
dGhlIGJyZWFrcG9pbnQgY29uZGl0aW9uLgorZnVuY3Rpb24gZGlzY29ubmVjdCgpCit7CisgICAg
bG9nKCJDbG9zaW5nIHRoZSBpbnNwZWN0b3IuIik7CisgICAgd2luZG93LmludGVybmFscy5jbG9z
ZUR1bW15SW5zcGVjdG9yRnJvbnRlbmQoKTsKKyAgICAvLyBUaHJvd2luZyBhbiBleGNlcHRpb24g
d2lsbCBtYWtlIHRoZSBkZWJ1Z2dlciBleGVjdXRlIHNvbWUgY29kZSB1c2luZyBhIGRlYWQgY29u
dGV4dC4KKyAgICAvLyBUZXN0IHBhc3NlcyBpZiB0aGUgZGVidWdnZXIgaXMgbm90IGNyYXNoaW5n
LgorICAgIHRocm93IG5ldyBFcnJvcigpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJ
bnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5j
dGlvbihtZXNzYWdlT2JqZWN0KQorICAgIHsKKyAgICAgICAgaWYgKC9yZXNvdXJjZXNcL2JyZWFr
cG9pbnRcLmpzJC8udGVzdChtZXNzYWdlT2JqZWN0LnBhcmFtcy51cmwpKSB7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiRm91bmQgYnJlYWtwb2ludC5qcyIpOworICAgICAgICAgICAg
dmFyIGJyZWFrcG9pbnQgPSB7CisgICAgICAgICAgICAgICAgbG9jYXRpb246IHsKKyAgICAgICAg
ICAgICAgICAgICAgc2NyaXB0SWQ6IG1lc3NhZ2VPYmplY3QucGFyYW1zLnNjcmlwdElkLAorICAg
ICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiA4LAorICAgICAgICAgICAgICAgICAgICBjb2x1
bW5OdW1iZXI6IDAKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIG9wdGlvbnM6
IHsKKyAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiAiZGlzY29ubmVjdCgpIgorICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNl
bmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50IiwgYnJlYWtwb2ludCwgSW5zcGVjdG9y
VGVzdC5jaGVja0ZvckVycm9yKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInJ1bkJyZWFrcG9pbnRXaXRoQ29u
ZGl0aW9uKCkifSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50
SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQorICAg
IHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6IFBhdXNlZCBpbiBkZWJ1Z2dlcjog
cmVhc29uID0gXCIiICsgbWVzc2FnZU9iamVjdC5wYXJhbXMucmVhc29uICsgIlwiIik7CisgICAg
ICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorCisgICAgSW5zcGVjdG9y
VGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOworfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5EZWJ1Z2dlci5zZXRCcmVha3Bv
aW50IHdpdGggYW4gYWN0aW9uIHRoYXQgdGhyb3dzIGFuIGV4Y2VwdGlvbiBzaG91bGQgbm90IHBh
dXNlIHRoZSBkZWJ1Z2dlci48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24td2l0aC1iYWQt
c2NyaXB0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVh
a3BvaW50LWNvbmRpdGlvbi13aXRoLWJhZC1zY3JpcHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmVhZDEyOTkzNjVjYWFhOWMxZWM5OGQ5NGRmNmQ2NDAxYjYyNGM5ODAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24t
d2l0aC1iYWQtc2NyaXB0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK0NPTlNPTEUgTUVT
U0FHRTogbGluZSA5OiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCBrZXl3b3JkICdlbHNlJworVGhl
IGRlYnVnZ2VyIHNob3VsZCBub3QgY3Jhc2ggd2hlbiBleGVjdXRpbmcgYSBiYWQgc2NyaXB0IGZv
ciB0ZXN0aW5nIGEgYnJlYWtwb2ludCBjb25kaXRpb24uCisKK0ZvdW5kIGJyZWFrcG9pbnQuanMK
K2luc2lkZSBicmVha3BvaW50V2l0aENvbmRpdGlvbiBhOigxKSBiOigyKSBhK2I6KDMpCitQQVNT
OiBUaGUgVk0gc2hvdWxkIG5vdCBjcmFzaC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLXdpdGgtYmFkLXNjcmlwdC5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLXdp
dGgtYmFkLXNjcmlwdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2MGQ1YWU2ODlhNmFkNzMxOTU3ZTMzYTIy
MTgxNjRiYzllZmVkNTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24td2l0aC1iYWQtc2NyaXB0Lmh0bWwKQEAgLTAs
MCArMSw1MyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2JyZWFrcG9pbnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0
aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5z
Y3JpcHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgeworICAgICAgICBp
ZiAoL3Jlc291cmNlc1wvYnJlYWtwb2ludFwuanMkLy50ZXN0KG1lc3NhZ2VPYmplY3QucGFyYW1z
LnVybCkpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGb3VuZCBicmVha3BvaW50
LmpzIik7CisgICAgICAgICAgICB2YXIgYnJlYWtwb2ludCA9IHsKKyAgICAgICAgICAgICAgICBs
b2NhdGlvbjogeworICAgICAgICAgICAgICAgICAgICBzY3JpcHRJZDogbWVzc2FnZU9iamVjdC5w
YXJhbXMuc2NyaXB0SWQsCisgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXI6IDgsCisgICAg
ICAgICAgICAgICAgICAgIGNvbHVtbk51bWJlcjogMAorICAgICAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICAgICAgb3B0aW9uczogeworICAgICAgICAgICAgICAgICAgICBhdXRvQ29udGludWU6
IHRydWUsCisgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogImVsc2UiLCAvLyBhIGJhZCBz
Y3JpcHQgdGhhdCBzaG91bGQgZmFpbCB0byBwYXJzZS4KKyAgICAgICAgICAgICAgICAgICAgYWN0
aW9uOiBbCisgICAgICAgICAgICAgICAgICAgICAgICB7dHlwZTogImxvZyIsIGRhdGE6ICJGQUlM
OiBUaGUgYnJlYWtwb2ludCBhY3Rpb24gc2hvdWxkIG5vdCBiZSBleGVjdXRlZCBpZiB0aGUgY29u
ZGl0aW9uIGhhZCBhbiBleGNlcHRpb24uIn0KKyAgICAgICAgICAgICAgICAgICAgXQorICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNl
bmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50IiwgYnJlYWtwb2ludCwgSW5zcGVjdG9y
VGVzdC5jaGVja0ZvckVycm9yKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogImJyZWFrcG9pbnRXaXRoQ29uZGl0
aW9uKDEsMikifSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIlBBU1M6IFRoZSBWTSBzaG91bGQgbm90IGNyYXNoLiIpOworICAgICAgICAgICAgICAgIGNv
bXBsZXRlVGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBJ
bnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbiht
ZXNzYWdlT2JqZWN0KQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6IFBh
dXNlZCBpbiBkZWJ1Z2dlcjogcmVhc29uID0gXCIiICsgbWVzc2FnZU9iamVjdC5wYXJhbXMucmVh
c29uICsgIlwiIik7CisgICAgICAgIGNvbXBsZXRlVGVzdCgpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIGNvbXBsZXRlVGVzdCgpCisgICAgeworICAgICAgICAvLyBSZXNldCB0aGUgcGF1c2VPbkV4
Y2VwdGlvbiBzdGF0ZSBiZWZvcmUgZW5kaW5nIHRoZSB0ZXN0LgorICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KKworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGhlIGRlYnVnZ2VyIHNob3VsZCBub3QgY3Jhc2ggd2hl
biBleGVjdXRpbmcgYSBiYWQgc2NyaXB0IGZvciB0ZXN0aW5nIGEgYnJlYWtwb2ludCBjb25kaXRp
b24uPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLXdpdGgtZXhjZXB0aW9uLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlv
bi13aXRoLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWIxZTI1YTk1OTRlOTU2
M2U5NTdlYzA3NzI3N2M3YTNiMmQyN2I0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWNvbmRpdGlvbi13aXRoLWV4Y2VwdGlvbi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVHlw
ZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndGhpcy53aWxs
LmNhdXNlJykKK1RoZSBkZWJ1Z2dlciBzaG91bGQgbm90IHBhdXNlIG9uIGV4Y2VwdGlvbnMgdGhy
b3duIHdoaWxlIGV4ZWN1dGluZyB0aGUgYnJlYWtwb2ludCBjb25kaXRpb25zLgorCitGb3VuZCBi
cmVha3BvaW50LmpzCitpbnNpZGUgYnJlYWtwb2ludFdpdGhDb25kaXRpb24gYTooMSkgYjooMikg
YStiOigzKQorUEFTUzogVGhlIGRlYnVnZ2VyIHNob3VsZCBub3QgcGF1c2Ugb24gdGhlIGV4Y2Vw
dGlvbiBpbnNpZGUgdGhlIGNvbmRpdGlvbi4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLXdpdGgtZXhjZXB0aW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1jb25kaXRpb24td2l0
aC1leGNlcHRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZjk4NTQ2YWUyZjhiMWRjODQxY2IyZjEyNjQx
NGFiYmRlMTFhNzYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL2JyZWFrcG9pbnQtY29uZGl0aW9uLXdpdGgtZXhjZXB0aW9uLmh0bWwKQEAgLTAsMCAr
MSw1NSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2lu
c3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL2JyZWFrcG9pbnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9u
IHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5zY3Jp
cHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgeworICAgICAgICBpZiAo
L3Jlc291cmNlc1wvYnJlYWtwb2ludFwuanMkLy50ZXN0KG1lc3NhZ2VPYmplY3QucGFyYW1zLnVy
bCkpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGb3VuZCBicmVha3BvaW50Lmpz
Iik7CisgICAgICAgICAgICB2YXIgYnJlYWtwb2ludCA9IHsKKyAgICAgICAgICAgICAgICBsb2Nh
dGlvbjogeworICAgICAgICAgICAgICAgICAgICBzY3JpcHRJZDogbWVzc2FnZU9iamVjdC5wYXJh
bXMuc2NyaXB0SWQsCisgICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXI6IDgsCisgICAgICAg
ICAgICAgICAgICAgIGNvbHVtbk51bWJlcjogMAorICAgICAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICAgICAgb3B0aW9uczogeworICAgICAgICAgICAgICAgICAgICBhdXRvQ29udGludWU6IHRy
dWUsCisgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogInRoaXMud2lsbC5jYXVzZS5leGNl
cHRpb24iLAorICAgICAgICAgICAgICAgICAgICBhY3Rpb246IFsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHt0eXBlOiAibG9nIiwgZGF0YTogIkZBSUw6IFRoZSBicmVha3BvaW50IGFjdGlvbiBz
aG91bGQgbm90IGJlIGV4ZWN1dGVkIGlmIHRoZSBjb25kaXRpb24gaGFkIGFuIGV4Y2VwdGlvbi4i
fQorICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJy
ZWFrcG9pbnQiLCBicmVha3BvaW50LCBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IpOworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0UGF1c2VPbkV4
Y2VwdGlvbnMiLCB7c3RhdGU6ICJhbGwifSwgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKTsK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUi
LCB7ZXhwcmVzc2lvbjogImJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uKDEsMikifSwgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1M6IFRoZSBkZWJ1Z2dl
ciBzaG91bGQgbm90IHBhdXNlIG9uIHRoZSBleGNlcHRpb24gaW5zaWRlIHRoZSBjb25kaXRpb24u
Iik7CisgICAgICAgICAgICAgICAgY29tcGxldGVUZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dl
ci5wYXVzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgeworICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiRkFJTDogUGF1c2VkIGluIGRlYnVnZ2VyOiByZWFzb24gPSBcIiIgKyBt
ZXNzYWdlT2JqZWN0LnBhcmFtcy5yZWFzb24gKyAiXCIiKTsKKyAgICAgICAgY29tcGxldGVUZXN0
KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkKKyAgICB7CisgICAgICAg
IC8vIFJlc2V0IHRoZSBwYXVzZU9uRXhjZXB0aW9uIHN0YXRlIGJlZm9yZSBlbmRpbmcgdGhlIHRl
c3QuCisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNl
T25FeGNlcHRpb25zIiwge3N0YXRlOiAibm9uZSJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5j
b21wbGV0ZVRlc3QoKTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJE
ZWJ1Z2dlci5lbmFibGUiLCB7fSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KKzxwPlRoZSBkZWJ1Z2dlciBzaG91bGQgbm90IHBhdXNlIG9uIGV4Y2Vw
dGlvbnMgdGhyb3duIHdoaWxlIGV4ZWN1dGluZyB0aGUgYnJlYWtwb2ludCBjb25kaXRpb25zLjwv
cD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtZXZhbC13aXRoLWV4Y2VwdGlv
bi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTUyM2YzM2JkZTJiNjk5OWQ2ZTRmYTA1MGNiMTk3
M2E0YTI4ZWM3NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNyBAQAorV2hpbGUgYmVpbmcgcGF1c2VkIG9uIGEgYnJlYWtwb2ludCB0aGUgZGVidWdnZXIg
c2hvdWxkIGlnbm9yZSB0aGUgZXhjZXB0aW9ucyBmcm9tIGNvbnNvbGUgY29tbWFuZHMuCisKK0Zv
dW5kIGJyZWFrcG9pbnQuanMKK2luc2lkZSBicmVha3BvaW50QmFzaWMKK1BBU1M6IFBhdXNlZCBp
biBkZWJ1Z2dlcjogcmVhc29uID0gIkJyZWFrcG9pbnQiCitQQVNTOiBUaGUgZGVidWdnZXIgc2hv
dWxkIG5vdCBzdG9wIG9uIHRoZSBleGNlcHRpb24gdGhyb3duIGJ5IGEgY29uc29sZSBjb21tYW5k
IHdoaWxlIHBhdXNlZCBvbiBhIGJyZWFrcG9pbnQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNlcHRpb24uaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNl
cHRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43N2NlMzgwNjdhYjUyMzk0NTMyNjljZGZhOWViZDRiNWM2
NmQ2ZjkxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2JyZWFrcG9pbnQtZXZhbC13aXRoLWV4Y2VwdGlvbi5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVz
b3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9icmVha3BvaW50LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sK
KyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0g
PSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQorICAgIHsKKyAgICAgICAgaWYgKC9yZXNvdXJjZXNc
L2JyZWFrcG9pbnRcLmpzJC8udGVzdChtZXNzYWdlT2JqZWN0LnBhcmFtcy51cmwpKSB7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRm91bmQgYnJlYWtwb2ludC5qcyIpOworICAgICAg
ICAgICAgdmFyIGJyZWFrcG9pbnQgPSB7CisgICAgICAgICAgICAgICAgbG9jYXRpb246IHsKKyAg
ICAgICAgICAgICAgICAgICAgc2NyaXB0SWQ6IG1lc3NhZ2VPYmplY3QucGFyYW1zLnNjcmlwdElk
LAorICAgICAgICAgICAgICAgICAgICBsaW5lTnVtYmVyOiAzLAorICAgICAgICAgICAgICAgICAg
ICBjb2x1bW5OdW1iZXI6IDAKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9OworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2lu
dCIsIGJyZWFrcG9pbnQsIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcik7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9u
cyIsIHtzdGF0ZTogImFsbCJ9LCBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IpOworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHBy
ZXNzaW9uOiAiYnJlYWtwb2ludEJhc2ljKCkifSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgY29tcGxldGVUZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IG9uQnJl
YWtwb2ludEhpdDsKKworICAgIGZ1bmN0aW9uIG9uQnJlYWtwb2ludEhpdChtZXNzYWdlT2JqZWN0
KQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1M6IFBhdXNlZCBpbiBkZWJ1
Z2dlcjogcmVhc29uID0gXCIiICsgbWVzc2FnZU9iamVjdC5wYXJhbXMucmVhc29uICsgIlwiIik7
CisKKyAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGRvIG5vdCBwYXVzZSBhZ2FpbiBpbiB0aGUgZGVi
dWdnZXIuCisgICAgICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVz
ZWQiXSA9IG9uUGF1c2VkT25FeGNlcHRpb247CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAidGhpcy5zaG91bGQudHJp
Z2dlci5hbi5leGNlcHRpb24ifSwgZnVuY3Rpb24obWVzc2FnZU9iamVjdCkgeworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKG1lc3NhZ2VPYmplY3QpOworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1M6IFRoZSBkZWJ1Z2dlciBzaG91bGQgbm90IHN0b3Ag
b24gdGhlIGV4Y2VwdGlvbiB0aHJvd24gYnkgYSBjb25zb2xlIGNvbW1hbmQgd2hpbGUgcGF1c2Vk
IG9uIGEgYnJlYWtwb2ludC4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIkRlYnVnZ2VyLnJlc3VtZSIpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBvblBhdXNlZE9uRXhjZXB0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgeworICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiRkFJTDogU2hvdWxkIG5vdCBicmVhayBvbiBleGNlcHRpb25zIHdoaWxl
IHBhdXNlZCBvbiBhIGJyZWFrcG9pbnQuIik7CisgICAgICAgIGNvbXBsZXRlVGVzdCgpOworICAg
IH0KKworICAgIGZ1bmN0aW9uIGNvbXBsZXRlVGVzdCgpCisgICAgeworICAgICAgICAvLyBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5yZXN1bWUiLCB7fSk7CisgICAgICAgIC8v
IFJlc2V0IHRoZSBwYXVzZU9uRXhjZXB0aW9uIHN0YXRlIGJlZm9yZSBlbmRpbmcgdGhlIHRlc3Qu
CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25F
eGNlcHRpb25zIiwge3N0YXRlOiAibm9uZSJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCgiRGVidWdnZXIuZGlzYWJsZSIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBs
ZXRlVGVzdCgpOworICAgIH0KKworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVn
Z2VyLmVuYWJsZSIsIHt9KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgorPHA+V2hpbGUgYmVpbmcgcGF1c2VkIG9uIGEgYnJlYWtwb2ludCB0aGUgZGVi
dWdnZXIgc2hvdWxkIGlnbm9yZSB0aGUgZXhjZXB0aW9ucyBmcm9tIGNvbnNvbGUgY29tbWFuZHMu
PC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2JyZWFrcG9pbnQtaW5zaWRlLWNvbmRpdG9ucy1hbmQtYWN0aW9ucy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1pbnNpZGUt
Y29uZGl0b25zLWFuZC1hY3Rpb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMzM0ODQ5NmFm
ZGE1MjU0NWMyMmVkYjk3YTI4ZmY2MjAwNzhmNTI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtaW5zaWRlLWNvbmRpdG9ucy1hbmQt
YWN0aW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGhlIGRlYnVnZ2VyIHNob3Vs
ZCBub3QgcGF1c2Ugb24gZXhjZXB0aW9ucyB0aHJvd24gd2hpbGUgZXhlY3V0aW5nIHRoZSBicmVh
a3BvaW50IGFjdGlvbnMuCisKK0ZvdW5kIGJyZWFrcG9pbnQuanMKK2luc2lkZSBicmVha3BvaW50
V2l0aENvbmRpdGlvbiBhOigxKSBiOigyKSBhK2I6KDMpCitFeGVjdXRpbmcgY29uZGl0aW9uCitp
bnNpZGUgYnJlYWtwb2ludEJhc2ljCitDb25kaXRpb24gZXhlY3V0ZWQKK0V4ZWN1dGluZyBhY3Rp
b24KK2luc2lkZSBicmVha3BvaW50QmFzaWMKK0FjdGlvbiBleGVjdXRlZAorUEFTUzogQnJlYWtw
b2ludCBjb25kaXRpb24gYW5kIGFjdGlvbiBleGVjdXRlZCwgYnV0IHRoZSBleGNlcHRpb24gZGlk
IG5vdCBjYXVzZSB0aGUgZGVidWdnZXIgdG8gcGF1c2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWluc2lkZS1jb25kaXRvbnMtYW5kLWFj
dGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWlu
c2lkZS1jb25kaXRvbnMtYW5kLWFjdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lODQ0ZGIyYjgxMDkw
ZWEyMDYzNzliNTgzODQxN2U3NzNiZTE3ZTcyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtaW5zaWRlLWNvbmRpdG9ucy1hbmQtYWN0
aW9ucy5odG1sCkBAIC0wLDAgKzEsNjkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9icmVha3BvaW50LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFu
ZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQor
ICAgIHsKKyAgICAgICAgaWYgKC9yZXNvdXJjZXNcL2JyZWFrcG9pbnRcLmpzJC8udGVzdChtZXNz
YWdlT2JqZWN0LnBhcmFtcy51cmwpKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
Rm91bmQgYnJlYWtwb2ludC5qcyIpOworCisgICAgICAgICAgICB2YXIgYnJlYWtwb2ludCA9IHsK
KyAgICAgICAgICAgICAgICBsb2NhdGlvbjogeworICAgICAgICAgICAgICAgICAgICBzY3JpcHRJ
ZDogbWVzc2FnZU9iamVjdC5wYXJhbXMuc2NyaXB0SWQsCisgICAgICAgICAgICAgICAgICAgIGxp
bmVOdW1iZXI6IDgsCisgICAgICAgICAgICAgICAgICAgIGNvbHVtbk51bWJlcjogMAorICAgICAg
ICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgb3B0aW9uczogeworICAgICAgICAgICAgICAg
ICAgICBhdXRvQ29udGludWU6IHRydWUsCisgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjog
ImxvZygnRXhlY3V0aW5nIGNvbmRpdGlvbicpOyBicmVha3BvaW50QmFzaWMoKTsgbG9nKCdDb25k
aXRpb24gZXhlY3V0ZWQnKTsgdHJ1ZTsiLAorICAgICAgICAgICAgICAgICAgICBhY3Rpb25zOiBb
CisgICAgICAgICAgICAgICAgICAgICAgICB7dHlwZTogImV2YWx1YXRlIiwgZGF0YTogImxvZygn
RXhlY3V0aW5nIGFjdGlvbicpOyBicmVha3BvaW50QmFzaWMoKTsgbG9nKCdBY3Rpb24gZXhlY3V0
ZWQnKTsifQorICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfTsKKworICAgICAgICAgICAgLy8gVGhpcyBicmVha3BvaW50IHNob3VsZCBub3QgYmUg
aGl0IGF0IGFsbC4gVGhlIG9ubHkgY2FsbGVycyBhcmUgdGhlIGNvbmRpdGlvbiBhbmQgYWN0aW9u
CisgICAgICAgICAgICAvLyBhbmQgYnJlYWtwb2ludHMgc2hvdWxkIGJlIGRpc2FibGVkIHdoaWxl
IGV4ZWN1dGluZyB0aGVpciBjb2RlLgorICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnRJbnNpZGVD
b25kaXRvbkFuZEFjdGlvbiA9IHsKKyAgICAgICAgICAgICAgICBsb2NhdGlvbjogeworICAgICAg
ICAgICAgICAgICAgICBzY3JpcHRJZDogbWVzc2FnZU9iamVjdC5wYXJhbXMuc2NyaXB0SWQsCisg
ICAgICAgICAgICAgICAgICAgIGxpbmVOdW1iZXI6IDMsCisgICAgICAgICAgICAgICAgICAgIGNv
bHVtbk51bWJlcjogMAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH07CisKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnQi
LCBicmVha3BvaW50LCBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IpOworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludCIsIGJyZWFr
cG9pbnRJbnNpZGVDb25kaXRvbkFuZEFjdGlvbiwgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9y
KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBh
dXNlT25FeGNlcHRpb25zIiwge3N0YXRlOiAiYWxsIn0sIEluc3BlY3RvclRlc3QuY2hlY2tGb3JF
cnJvcik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2
YWx1YXRlIiwge2V4cHJlc3Npb246ICJicmVha3BvaW50V2l0aENvbmRpdGlvbigxLDIpIn0sIGZ1
bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNo
ZWNrRm9yRXJyb3IobWVzc2FnZU9iamVjdCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIlBBU1M6IEJyZWFrcG9pbnQgY29uZGl0aW9uIGFuZCBhY3Rpb24gZXhlY3V0ZWQsIGJ1
dCB0aGUgZXhjZXB0aW9uIGRpZCBub3QgY2F1c2UgdGhlIGRlYnVnZ2VyIHRvIHBhdXNlLiIpCisg
ICAgICAgICAgICAgICAgY29tcGxldGVUZXN0KCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVz
ZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgeworICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiRkFJTDogUGF1c2VkIGluIGRlYnVnZ2VyOiByZWFzb24gPSBcIiIgKyBtZXNzYWdl
T2JqZWN0LnBhcmFtcy5yZWFzb24gKyAiXCIiKTsKKyAgICAgICAgY29tcGxldGVUZXN0KCk7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gY29tcGxldGVUZXN0KCkKKyAgICB7CisgICAgICAgIC8vIFJl
c2V0IHRoZSBwYXVzZU9uRXhjZXB0aW9uIHN0YXRlIGJlZm9yZSBlbmRpbmcgdGhlIHRlc3QuCisg
ICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNl
cHRpb25zIiwge3N0YXRlOiAibm9uZSJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0
ZVRlc3QoKTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dl
ci5lbmFibGUiLCB7fSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KKzxwPlRoZSBkZWJ1Z2dlciBzaG91bGQgbm90IHBhdXNlIG9uIGV4Y2VwdGlvbnMg
dGhyb3duIHdoaWxlIGV4ZWN1dGluZyB0aGUgYnJlYWtwb2ludCBhY3Rpb25zLjwvcD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9j
YWxsLWZyYW1lLWZ1bmN0aW9uLW5hbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtZnVuY3Rpb24tbmFtZS1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGE1ZjZmNmVhYTkyOWY0OTNkNWFhYmRkMTMyNTVmMjNiMWVkY2JmYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZyYW1lLWZ1bmN0
aW9uLW5hbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorRGVidWdnZXIuc2V0QnJlYWtw
b2ludCBvbiBsaW5lOmNvbHVtbiBpbiA8c2NyaXB0PgorCitGb3VuZCA8c2NyaXB0PgorUnVubmlu
ZyB0ZXN0RnVuY3Rpb24KK0hpdCBCcmVha3BvaW50IQorUEFTUzogZnJhbWVbMF0gIiIKK1BBU1M6
IGZyYW1lWzFdICJmb3JFYWNoIgorUEFTUzogZnJhbWVbMl0gInRlc3RGdW5jdGlvbiIKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtZnVuY3Rp
b24tbmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUt
ZnVuY3Rpb24tbmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkYzRlYWJiMDAzODgwOGFmMDRmNzY0MzY0
MDZiNjAxZDY5MzM3YzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvY2FsbC1mcmFtZS1mdW5jdGlvbi1uYW1lLmh0bWwKQEAgLTAsMCArMSw3NiBAQAor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorLy8gUHV0IHRo
aXMgaGVyZSBpbnN0ZWFkIG9mIG9uIDxib2R5IG9ubG9hZD4gdG8gcHJldmVudCBhbiBleHRyYSBE
ZWJ1Z2dlci5zY3JpcHRQYXJzZWQgZXZlbnQuCit3aW5kb3cub25sb2FkID0gcnVuVGVzdDsKKwor
ZnVuY3Rpb24gdGVzdCgpCit7CisgICAgLy8gVGhpcyB0ZXN0IHNldHMgYSBicmVha3BvaW50IG9u
IGxpbmU6Y29sdW1uIGluIHRoZSA8c2NyaXB0PiBiZWxvdy4KKyAgICAvLyBXZSBzZXQgYSBicmVh
a3BvaW50IGJlZm9yZSBldmFsdWF0aW5nICdzdW0gKz0gLi4uJywgYW5kIHZlcmlmeSB0aGF0Cisg
ICAgLy8gY2FsbCBmcmFtZSBmdW5jdGlvbk5hbWVzIGFyZSB3aGF0IHdlIGV4cGVjdC4KKworICAg
IEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKKworICAg
IEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQiXSA9IGZ1
bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgeworICAgICAgICBpZiAoL2NhbGwtZnJhbWUtZnVu
Y3Rpb24tbmFtZVwuaHRtbCQvLnRlc3QobWVzc2FnZU9iamVjdC5wYXJhbXMudXJsKSAmJiBtZXNz
YWdlT2JqZWN0LnBhcmFtcy5zdGFydExpbmUgPiAxMCkgeworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIkZvdW5kIDxzY3JpcHQ+Iik7CisgICAgICAgICAgICB2YXIgc2NyaXB0SWRlbnRp
ZmllciA9IG1lc3NhZ2VPYmplY3QucGFyYW1zLnNjcmlwdElkOworICAgICAgICAgICAgdmFyIGxp
bmVOdW1iZXIgPSBtZXNzYWdlT2JqZWN0LnBhcmFtcy5zdGFydExpbmUgKyA2OworICAgICAgICAg
ICAgdmFyIGNvbHVtbk51bWJlciA9IDEyOworICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0ge3Nj
cmlwdElkOiBzY3JpcHRJZGVudGlmaWVyLCBsaW5lTnVtYmVyOiBsaW5lTnVtYmVyLCBjb2x1bW5O
dW1iZXI6IGNvbHVtbk51bWJlcn07CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21t
YW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50Iiwge2xvY2F0aW9uOiBsb2NhdGlvbn0sIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJSdW5uaW5nIHRlc3RG
dW5jdGlvbiIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1
bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInRlc3RGdW5jdGlvbigpIn0pOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFu
ZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQorICAgIHsK
KyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkhpdCBCcmVha3BvaW50ISIpOworICAgICAgICB2
YXIgZnVuY3Rpb25OYW1lcyA9IFsgXTsKKyAgICAgICAgdmFyIGk7CisgICAgICAgIGZvciAoaSA9
IDA7IGkgPCAzOyBpKyspCisgICAgICAgICAgICBmdW5jdGlvbk5hbWVzW2ldID0gbWVzc2FnZU9i
amVjdC5wYXJhbXMuY2FsbEZyYW1lc1tpXS5mdW5jdGlvbk5hbWU7CisgICAgICAgIAorICAgICAg
ICBmdW5jdGlvbiBhc3NlcnRGdW5jdGlvbk5hbWUoaW5kZXgsIGFjdHVhbCwgZXhwZWN0ZWQpIHsK
KyAgICAgICAgICAgIGlmIChhY3R1YWwgPT0gZXhwZWN0ZWQpCisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coJ1BBU1M6IGZyYW1lWycgKyBpbmRleCArICddICInICsgYWN0dWFsICsg
JyInKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygnRkFJTDogZnJhbWVbJyArIGluZGV4ICsgJ10gZXhwZWN0ICInICsgZXhwZWN0ZWQgKyAnIiwg
YWN0dWFsICInICsgYWN0dWFsICsgJyInKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGZyYW1l
IDAgc2hvdWxkIGJlIHRoZSBhbm9ueW1vdXMgaW5uZXIgZnVuY3Rpb24uCisgICAgICAgIGFzc2Vy
dEZ1bmN0aW9uTmFtZSgwLCBmdW5jdGlvbk5hbWVzWzBdLCAiIik7CisKKyAgICAgICAgLy8gZnJh
bWUgMSBzaG91bGQgYmUgImZvckVhY2giIChhbiBpbnRlcm5hbC9ob3N0IGZ1bmN0aW9uKS4KKyAg
ICAgICAgYXNzZXJ0RnVuY3Rpb25OYW1lKDEsIGZ1bmN0aW9uTmFtZXNbMV0sICJmb3JFYWNoIik7
CisKKyAgICAgICAgLy8gZnJhbWUgMiBzaG91bGQgYmUgInRlc3RGdW5jdGlvbiIuCisgICAgICAg
IGFzc2VydEZ1bmN0aW9uTmFtZSgyLCBmdW5jdGlvbk5hbWVzWzJdLCAidGVzdEZ1bmN0aW9uIik7
CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9Cit9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+RGVidWdnZXIuc2V0QnJlYWtwb2ludCBvbiBsaW5l
OmNvbHVtbiBpbiAmbHQ7c2NyaXB0Jmd0OzwvcD4KKzxzY3JpcHQ+Ly8gTGluZSAwCitmdW5jdGlv
biB0ZXN0RnVuY3Rpb24oKSB7IC8vIExpbmUgMQorICAgIHRyeSB7IC8vIExpbmUgMgorICAgICAg
ICB2YXIgYXJyYXkgPSBbMiwgNSwgN107IC8vIExpbmUgMworICAgICAgICB2YXIgc3VtID0gMDsg
Ly8gTGluZSA0CisgICAgICAgIGFycmF5LmZvckVhY2goZnVuY3Rpb24odmFsdWUpIHsgLy8gTGlu
ZSA1CisgICAgICAgICAgICBzdW0gKz0gYXJyYXlbdmFsdWVdOyAvLyBMaW5lIDYKKyAgICAgICAg
fSk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBjb25zb2xlLmxvZygiRXhjZXB0aW9uOiAi
ICsgZSk7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLWhvc3QtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhp
cy1ob3N0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYjk0Yzc2NWY5MmZmZDk0M2FhOWM3NDBl
MGQ0ZTBmODE3OGQyNmEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkg
QEAKK0RlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4gPHNjcmlwdD4KKwor
Rm91bmQgPHNjcmlwdD4KK1J1bm5pbmcgdGVzdEZ1bmN0aW9uCitIaXQgQnJlYWtwb2ludCEKK1BB
U1M6IGZyYW1lWzBdIHR5cGUgIm9iamVjdCIgY2xhc3NOYW1lICJXaW5kb3ciCitQQVNTOiBmcmFt
ZVsxXSB0eXBlICJvYmplY3QiIGNsYXNzTmFtZSAiQXJyYXkiCitQQVNTOiBmcmFtZVsyXSB0eXBl
ICJvYmplY3QiIGNsYXNzTmFtZSAiV2luZG93IgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLWhvc3QuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtaG9zdC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU5MDg1NGM5NjJmNzg3NjhiZDFlNDgzNTUwOTc1NThlYzE5OTIzN2UKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLWhvc3Qu
aHRtbApAQCAtMCwwICsxLDkzIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CisvLyBQdXQgdGhpcyBoZXJlIGluc3RlYWQgb2Ygb24gPGJvZHkgb25sb2Fk
PiB0byBwcmV2ZW50IGFuIGV4dHJhIERlYnVnZ2VyLnNjcmlwdFBhcnNlZCBldmVudC4KK3dpbmRv
dy5vbmxvYWQgPSBydW5UZXN0OworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICAvLyBUaGlzIHRl
c3Qgc2V0cyBhIGJyZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4gdGhlIDxzY3JpcHQ+IGJlbG93
LgorICAgIC8vIFdlIHNldCBhIGJyZWFrcG9pbnQgYmVmb3JlIGV2YWx1YXRpbmcgJ3N1bSArPSAu
Li4nLCBhbmQgdmVyaWZ5IHRoYXQKKyAgICAvLyBjYWxsIGZyYW1lIHRoaXMgdmFsdWVzIGFyZSB3
aGF0IHdlIGV4cGVjdC4KKworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2Vy
LmVuYWJsZSIsIHt9KTsKKworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dl
ci5zY3JpcHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgeworICAgICAg
ICBpZiAoL2NhbGwtZnJhbWUtdGhpcy1ob3N0XC5odG1sJC8udGVzdChtZXNzYWdlT2JqZWN0LnBh
cmFtcy51cmwpICYmIG1lc3NhZ2VPYmplY3QucGFyYW1zLnN0YXJ0TGluZSA+IDEwKSB7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRm91bmQgPHNjcmlwdD4iKTsKKyAgICAgICAgICAg
IHZhciBzY3JpcHRJZGVudGlmaWVyID0gbWVzc2FnZU9iamVjdC5wYXJhbXMuc2NyaXB0SWQ7Cisg
ICAgICAgICAgICB2YXIgbGluZU51bWJlciA9IG1lc3NhZ2VPYmplY3QucGFyYW1zLnN0YXJ0TGlu
ZSArIDY7CisgICAgICAgICAgICB2YXIgY29sdW1uTnVtYmVyID0gMTI7CisgICAgICAgICAgICB2
YXIgbG9jYXRpb24gPSB7c2NyaXB0SWQ6IHNjcmlwdElkZW50aWZpZXIsIGxpbmVOdW1iZXI6IGxp
bmVOdW1iZXIsIGNvbHVtbk51bWJlcjogY29sdW1uTnVtYmVyfTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnQiLCB7bG9jYXRpb246
IGxvY2F0aW9ufSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIlJ1bm5pbmcgdGVzdEZ1bmN0aW9uIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAidGVzdEZ1bmN0
aW9uKCkifSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEluc3Bl
Y3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1bmN0aW9uKG1lc3Nh
Z2VPYmplY3QpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiSGl0IEJyZWFrcG9p
bnQhIik7CisgICAgICAgIHZhciB0aGlzVmFsdWVzID0gWyBdOworICAgICAgICB2YXIgaTsKKyAg
ICAgICAgZm9yIChpID0gMDsgaSA8IDM7IGkrKykKKyAgICAgICAgICAgIHRoaXNWYWx1ZXNbaV0g
PSBtZXNzYWdlT2JqZWN0LnBhcmFtcy5jYWxsRnJhbWVzW2ldLnRoaXM7CisgICAgICAgIAorICAg
ICAgICBmdW5jdGlvbiBhc3NlcnRUaGlzVmFsdWUoaW5kZXgsIGFjdHVhbCwgZXhwZWN0ZWQpIHsK
KyAgICAgICAgICAgIHZhciBzdWNjZXNzID0gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChhY3R1YWwu
dHlwZSAhPSBleHBlY3RlZC50eXBlKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coJ0ZBSUw6IGZyYW1lWycgKyBpbmRleCArICddIGV4cGVjdCB0eXBlICInICsgZXhwZWN0ZWQu
dHlwZSArICciLCBhY3R1YWwgIicgKyBhY3R1YWwudHlwZSArICciJyk7CisgICAgICAgICAgICAg
ICAgc3VjY2VzcyA9IGZhbHNlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoYWN0
dWFsLmNsYXNzTmFtZSAhPSBleHBlY3RlZC5jbGFzc05hbWUpIHsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygnRkFJTDogZnJhbWVbJyArIGluZGV4ICsgJ10gZXhwZWN0IGNsYXNz
TmFtZSAiJyArIGV4cGVjdGVkLmNsYXNzTmFtZSArICciLCBhY3R1YWwgIicgKyBhY3R1YWwuY2xh
c3NOYW1lICsgJyInKTsKKyAgICAgICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIGlmIChzdWNjZXNzKQorICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCdQQVNTOiBmcmFtZVsnICsgaW5kZXggKyAnXSB0eXBlICInICsgYWN0dWFs
LnR5cGUgKyAnIiBjbGFzc05hbWUgIicgKyBhY3R1YWwuY2xhc3NOYW1lICsgJyInKTsKKyAgICAg
ICAgfQorCisgICAgICAgIC8vIGZyYW1lIDAgc2hvdWxkIGJlIHRoZSBhbm9ueW1vdXMgaW5uZXIg
ZnVuY3Rpb24uCisgICAgICAgIGFzc2VydFRoaXNWYWx1ZSgwLCB0aGlzVmFsdWVzWzBdLCB7Cisg
ICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAorICAgICAgICAgICAgImNsYXNzTmFtZSI6ICJX
aW5kb3ciCisgICAgICAgIH0pOworCisgICAgICAgIC8vIGZyYW1lIDEgc2hvdWxkIGJlICJmb3JF
YWNoIiAoYW4gaW50ZXJuYWwvaG9zdCBmdW5jdGlvbikuCisgICAgICAgIGFzc2VydFRoaXNWYWx1
ZSgxLCB0aGlzVmFsdWVzWzFdLCB7CisgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAorICAg
ICAgICAgICAgImNsYXNzTmFtZSI6ICJBcnJheSIKKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8g
ZnJhbWUgMiBzaG91bGQgYmUgInRlc3RGdW5jdGlvbiIuCisgICAgICAgIGFzc2VydFRoaXNWYWx1
ZSgyLCB0aGlzVmFsdWVzWzJdLCB7CisgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAorICAg
ICAgICAgICAgImNsYXNzTmFtZSI6ICJXaW5kb3ciCisgICAgICAgIH0pOworICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cD5EZWJ1Z2dlci5zZXRCcmVha3BvaW50IG9uIGxpbmU6Y29sdW1uIGluICZsdDtz
Y3JpcHQmZ3Q7PC9wPgorPHNjcmlwdD4vLyBMaW5lIDAKK2Z1bmN0aW9uIHRlc3RGdW5jdGlvbigp
IHsgLy8gTGluZSAxCisgICAgdHJ5IHsgLy8gTGluZSAyCisgICAgICAgIHZhciBhcnJheSA9IFsy
LCA1LCA3XTsgLy8gTGluZSAzCisgICAgICAgIHZhciBzdW0gPSAwOyAvLyBMaW5lIDQKKyAgICAg
ICAgYXJyYXkuZm9yRWFjaChmdW5jdGlvbih2YWx1ZSkgeyAvLyBMaW5lIDUKKyAgICAgICAgICAg
IHN1bSArPSBhcnJheVt2YWx1ZV07IC8vIExpbmUgNgorICAgICAgICB9KTsKKyAgICB9IGNhdGNo
IChlKSB7CisgICAgICAgIGNvbnNvbGUubG9nKCJFeGNlcHRpb246ICIgKyBlKTsKKyAgICB9Cit9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTRkMDA0ZGI5NDQ4NTAyOWIwZmI4OWZiNmViZWU5
YjhkMDhhOTM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2NhbGwtZnJhbWUtdGhpcy1ub25zdHJpY3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEg
QEAKK0RlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4gPHNjcmlwdD4KKwor
Rm91bmQgPHNjcmlwdD4KK1J1bm5pbmcgdGVzdEZ1bmN0aW9uCitQQVNTOiBzdGVwIDA6IHR5cGUg
Im9iamVjdCIgY2xhc3NOYW1lICJOdW1iZXIiCitQQVNTOiBzdGVwIDE6IHR5cGUgIm9iamVjdCIg
Y2xhc3NOYW1lICJTdHJpbmciCitQQVNTOiBzdGVwIDI6IHR5cGUgIm9iamVjdCIgY2xhc3NOYW1l
ICJOdW1iZXIiCitQQVNTOiBzdGVwIDM6IHR5cGUgIm9iamVjdCIgY2xhc3NOYW1lICJTdHJpbmci
CitQQVNTOiBzdGVwIDQ6IHR5cGUgIm9iamVjdCIgY2xhc3NOYW1lICJXaW5kb3ciCitQQVNTOiBz
dGVwIDU6IHR5cGUgIm9iamVjdCIgY2xhc3NOYW1lICJXaW5kb3ciCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtbm9uc3RyaWN0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLW5vbnN0
cmljdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNjMTU4MjQxOWU5NzZlODc3Y2ExZjM2MDEwNzhmYWY5ZTZi
YjJmNzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
Y2FsbC1mcmFtZS10aGlzLW5vbnN0cmljdC5odG1sCkBAIC0wLDAgKzEsMTQ0IEBACis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
cy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisvLyBQdXQgdGhpcyBoZXJl
IGluc3RlYWQgb2Ygb24gPGJvZHkgb25sb2FkPiB0byBwcmV2ZW50IGFuIGV4dHJhIERlYnVnZ2Vy
LnNjcmlwdFBhcnNlZCBldmVudC4KK3dpbmRvdy5vbmxvYWQgPSBydW5UZXN0OworCitmdW5jdGlv
biB0ZXN0KCkKK3sKKyAgICAvLyBUaGlzIHRlc3Qgc2V0cyBhIGJyZWFrcG9pbnQgb24gbGluZTpj
b2x1bW4gaW4gdGhlIDxzY3JpcHQ+IGJlbG93LgorICAgIC8vIFdlIHNldCBhIGJyZWFrcG9pbnQg
YmVmb3JlIGV2YWx1YXRpbmcgJ3N1bSArPSAuLi4nLCBhbmQgdmVyaWZ5IHRoYXQKKyAgICAvLyBj
YWxsIGZyYW1lIHRoaXMgdmFsdWVzIGFyZSB3aGF0IHdlIGV4cGVjdC4KKworICAgIEluc3BlY3Rv
clRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKKworICAgIEluc3BlY3Rv
clRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1l
c3NhZ2VPYmplY3QpCisgICAgeworICAgICAgICBpZiAoL2NhbGwtZnJhbWUtdGhpcy1ub25zdHJp
Y3RcLmh0bWwkLy50ZXN0KG1lc3NhZ2VPYmplY3QucGFyYW1zLnVybCkgJiYgbWVzc2FnZU9iamVj
dC5wYXJhbXMuc3RhcnRMaW5lID4gMTApIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJGb3VuZCA8c2NyaXB0PiIpOworICAgICAgICAgICAgdmFyIHNjcmlwdElkZW50aWZpZXIgPSBt
ZXNzYWdlT2JqZWN0LnBhcmFtcy5zY3JpcHRJZDsKKyAgICAgICAgICAgIHZhciBsaW5lTnVtYmVy
ID0gbWVzc2FnZU9iamVjdC5wYXJhbXMuc3RhcnRMaW5lICsgMzsKKyAgICAgICAgICAgIHZhciBj
b2x1bW5OdW1iZXIgPSA0OworICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0ge3NjcmlwdElkOiBz
Y3JpcHRJZGVudGlmaWVyLCBsaW5lTnVtYmVyOiBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXI6IGNv
bHVtbk51bWJlcn07CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1
Z2dlci5zZXRCcmVha3BvaW50Iiwge2xvY2F0aW9uOiBsb2NhdGlvbn0sIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJSdW5uaW5nIHRlc3RGdW5jdGlvbiIp
OworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZh
bHVhdGUiLCB7ZXhwcmVzc2lvbjogInRlc3RGdW5jdGlvbigpIn0pOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2YXIgc3RlcCA9IDA7CisKKyAgICBJbnNwZWN0b3JU
ZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2Jq
ZWN0KQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gYXNzZXJ0VGhpc1ZhbHVlKHN0ZXAsIGFjdHVh
bCwgZXhwZWN0ZWQpIHsKKyAgICAgICAgICAgIHZhciBzdWNjZXNzID0gdHJ1ZTsKKyAgICAgICAg
ICAgIGlmIChhY3R1YWwudHlwZSAhPSBleHBlY3RlZC50eXBlKSB7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coJ0ZBSUw6IHN0ZXAgJyArIHN0ZXAgKyAnOiBleHBlY3QgdHlwZSAi
JyArIGV4cGVjdGVkLnR5cGUgKyAnIiwgYWN0dWFsICInICsgYWN0dWFsLnR5cGUgKyAnIicpOwor
ICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgaWYgKGFjdHVhbC5jbGFzc05hbWUgIT0gZXhwZWN0ZWQuY2xhc3NOYW1lKSB7CisgICAg
ICAgICAgICAgICAgdmFyIGFjdHVhbFJlc3VsdAorICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCdGQUlMOiBzdGVwICcgKyBzdGVwICsgJzogZXhwZWN0IGNsYXNzTmFtZSAiJyArIGV4
cGVjdGVkLmNsYXNzTmFtZSArICciLCBhY3R1YWwgIicgKyBhY3R1YWwuY2xhc3NOYW1lICsgJyIn
KTsKKyAgICAgICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGlmIChzdWNjZXNzKQorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCdQQVNTOiBzdGVwICcgKyBzdGVwICsgJzogdHlwZSAiJyArIGFjdHVhbC50eXBlICsgJyIgY2xh
c3NOYW1lICInICsgYWN0dWFsLmNsYXNzTmFtZSArICciJyk7CisgICAgICAgIH0KKworICAgICAg
ICBzd2l0Y2ggKHN0ZXApIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgYXNzZXJ0VGhp
c1ZhbHVlKDAsIG1lc3NhZ2VPYmplY3QucGFyYW1zLmNhbGxGcmFtZXNbMV0udGhpcywgeworICAg
ICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAgICAgICAgImNsYXNzTmFt
ZSI6ICJOdW1iZXIiCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgIGNhc2UgMToKKyAgICAgICAgICAgIGFzc2VydFRoaXNWYWx1ZSgxLCBtZXNzYWdlT2JqZWN0
LnBhcmFtcy5jYWxsRnJhbWVzWzFdLnRoaXMsIHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJv
YmplY3QiLAorICAgICAgICAgICAgICAgICJjbGFzc05hbWUiOiAiU3RyaW5nIgorICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIDI6CisgICAgICAgICAg
ICBhc3NlcnRUaGlzVmFsdWUoMiwgbWVzc2FnZU9iamVjdC5wYXJhbXMuY2FsbEZyYW1lc1sxXS50
aGlzLCB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAgICAg
ICAiY2xhc3NOYW1lIjogIk51bWJlciIKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgYnJl
YWs7CisKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgYXNzZXJ0VGhpc1ZhbHVlKDMsIG1l
c3NhZ2VPYmplY3QucGFyYW1zLmNhbGxGcmFtZXNbMV0udGhpcywgeworICAgICAgICAgICAgICAg
ICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAgICAgICAgImNsYXNzTmFtZSI6ICJTdHJpbmci
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNhc2UgNDoK
KyAgICAgICAgICAgIGFzc2VydFRoaXNWYWx1ZSg0LCBtZXNzYWdlT2JqZWN0LnBhcmFtcy5jYWxs
RnJhbWVzWzFdLnRoaXMsIHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAorICAg
ICAgICAgICAgICAgICJjbGFzc05hbWUiOiAiV2luZG93IgorICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIDU6CisgICAgICAgICAgICBhc3NlcnRUaGlz
VmFsdWUoNSwgbWVzc2FnZU9iamVjdC5wYXJhbXMuY2FsbEZyYW1lc1sxXS50aGlzLCB7CisgICAg
ICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAgICAgICAiY2xhc3NOYW1l
IjogIldpbmRvdyIKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIucmVzdW1lIiwg
e30pOworICAgICAgICBpZiAoc3RlcCA9PSA1KQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5j
b21wbGV0ZVRlc3QoKTsKKyAgICAgICAgc3RlcCsrOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cD5EZWJ1Z2dlci5zZXRCcmVha3BvaW50IG9uIGxpbmU6Y29sdW1uIGlu
ICZsdDtzY3JpcHQmZ3Q7PC9wPgorPHNjcmlwdD4vLyBMaW5lIDAKKy8vIExpbmUgMQorZnVuY3Rp
b24gYnJlYWtXaXRoTWVzc2FnZShtZXNzYWdlKSB7IC8vIExpbmUgMgorICAgIG1lc3NhZ2U7IC8v
IExpbmUgMworfQorZnVuY3Rpb24gYWNjZXNzVGhpcygpIHsKKyAgICBicmVha1dpdGhNZXNzYWdl
KCJ0aGlzIGlzICIgKyB0aGlzKTsKK30KK2Z1bmN0aW9uIGRvbnRBY2Nlc3NUaGlzKCkgeworICAg
IGJyZWFrV2l0aE1lc3NhZ2UoIm5vdCBhY2Nlc3NpbmcgdGhpcyIpOworfQorZnVuY3Rpb24gdGVz
dEZ1bmN0aW9uKCkgeworICAgIHZhciB0aGlzVmFsdWUgPSAyOworICAgIGFjY2Vzc1RoaXMuYmlu
ZCh0aGlzVmFsdWUpKCk7CisKKyAgICB0aGlzVmFsdWUgPSAiSGVsbG8iOworICAgIGFjY2Vzc1Ro
aXMuYmluZCh0aGlzVmFsdWUpKCk7CisKKyAgICB0aGlzVmFsdWUgPSAyOworICAgIGRvbnRBY2Nl
c3NUaGlzLmJpbmQodGhpc1ZhbHVlKSgpOworCisgICAgdGhpc1ZhbHVlID0gIkhlbGxvIjsKKyAg
ICBkb250QWNjZXNzVGhpcy5iaW5kKHRoaXNWYWx1ZSkoKTsKKworICAgIGZ1bmN0aW9uIGZvbygp
IHsKKyAgICAgICAgdmFyIGZvb1N0dWZmID0gMTsKKyAgICAgICAgZnVuY3Rpb24gZ29vKCkgewor
ICAgICAgICAgICAgYWNjZXNzVGhpcygpOworCisgICAgICAgICAgICBkb250QWNjZXNzVGhpcygp
OworCisgICAgICAgICAgICByZXR1cm4gZm9vU3R1ZmY7CisgICAgICAgIH0KKyAgICAgICAgZ29v
KCk7CisgICAgfQorICAgIGZvbygpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlz
LXN0cmljdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY2Fs
bC1mcmFtZS10aGlzLXN0cmljdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2M3YjJhODhjNjdj
ZGFhY2FkMGJhZWY3ZDY0Y2FkZGEyOGIwYjAwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxsLWZyYW1lLXRoaXMtc3RyaWN0LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDExIEBACitEZWJ1Z2dlci5zZXRCcmVha3BvaW50IG9uIGxpbmU6Y29sdW1u
IGluIDxzY3JpcHQ+CisKK0ZvdW5kIDxzY3JpcHQ+CitSdW5uaW5nIHRlc3RGdW5jdGlvbgorUEFT
Uzogc3RlcCAwOiB0eXBlICJudW1iZXIiIHZhbHVlICIyIgorUEFTUzogc3RlcCAxOiB0eXBlICJz
dHJpbmciIHZhbHVlICJIZWxsbyIKK1BBU1M6IHN0ZXAgMjogdHlwZSAibnVtYmVyIiB2YWx1ZSAi
MiIKK1BBU1M6IHN0ZXAgMzogdHlwZSAic3RyaW5nIiB2YWx1ZSAiSGVsbG8iCitQQVNTOiBzdGVw
IDQ6IHR5cGUgInVuZGVmaW5lZCIgdmFsdWUgInVuZGVmaW5lZCIKK1BBU1M6IHN0ZXAgNTogdHlw
ZSAidW5kZWZpbmVkIiB2YWx1ZSAidW5kZWZpbmVkIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLXN0cmljdC5odG1sIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1zdHJpY3QuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mNWI3ZWIxOTZiYTMxZDVlMjNkMDk4ZjI1ZDBlMGU4ZjA3NzE2NjYyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhp
cy1zdHJpY3QuaHRtbApAQCAtMCwwICsxLDE0OSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorLy8gUHV0IHRoaXMgaGVyZSBpbnN0ZWFkIG9mIG9uIDxi
b2R5IG9ubG9hZD4gdG8gcHJldmVudCBhbiBleHRyYSBEZWJ1Z2dlci5zY3JpcHRQYXJzZWQgZXZl
bnQuCit3aW5kb3cub25sb2FkID0gcnVuVGVzdDsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAg
Ly8gVGhpcyB0ZXN0IHNldHMgYSBicmVha3BvaW50IG9uIGxpbmU6Y29sdW1uIGluIHRoZSA8c2Ny
aXB0PiBiZWxvdy4KKyAgICAvLyBXZSBzZXQgYSBicmVha3BvaW50IGJlZm9yZSBldmFsdWF0aW5n
ICdzdW0gKz0gLi4uJywgYW5kIHZlcmlmeSB0aGF0CisgICAgLy8gY2FsbCBmcmFtZSB0aGlzIHZh
bHVlcyBhcmUgd2hhdCB3ZSBleHBlY3QuCisKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7CisKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxl
clsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQorICAg
IHsKKyAgICAgICAgaWYgKC9jYWxsLWZyYW1lLXRoaXMtc3RyaWN0XC5odG1sJC8udGVzdChtZXNz
YWdlT2JqZWN0LnBhcmFtcy51cmwpICYmIG1lc3NhZ2VPYmplY3QucGFyYW1zLnN0YXJ0TGluZSA+
IDEwKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRm91bmQgPHNjcmlwdD4iKTsK
KyAgICAgICAgICAgIHZhciBzY3JpcHRJZGVudGlmaWVyID0gbWVzc2FnZU9iamVjdC5wYXJhbXMu
c2NyaXB0SWQ7CisgICAgICAgICAgICB2YXIgbGluZU51bWJlciA9IG1lc3NhZ2VPYmplY3QucGFy
YW1zLnN0YXJ0TGluZSArIDM7CisgICAgICAgICAgICB2YXIgY29sdW1uTnVtYmVyID0gNDsKKyAg
ICAgICAgICAgIHZhciBsb2NhdGlvbiA9IHtzY3JpcHRJZDogc2NyaXB0SWRlbnRpZmllciwgbGlu
ZU51bWJlcjogbGluZU51bWJlciwgY29sdW1uTnVtYmVyOiBjb2x1bW5OdW1iZXJ9OworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludCIs
IHtsb2NhdGlvbjogbG9jYXRpb259LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiUnVubmluZyB0ZXN0RnVuY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246
ICJ0ZXN0RnVuY3Rpb24oKSJ9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQor
CisgICAgdmFyIHN0ZXAgPSAwOworCisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRl
YnVnZ2VyLnBhdXNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKKyAgICB7CisgICAgICAg
IGZ1bmN0aW9uIGFzc2VydFRoaXNWYWx1ZShzdGVwLCBhY3R1YWwsIGV4cGVjdGVkKSB7CisgICAg
ICAgICAgICB2YXIgc3VjY2VzcyA9IHRydWU7CisgICAgICAgICAgICBpZiAoYWN0dWFsLnR5cGUg
IT0gZXhwZWN0ZWQudHlwZSkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCdG
QUlMOiBzdGVwICcgKyBzdGVwICsgJzogZXhwZWN0IHR5cGUgIicgKyBleHBlY3RlZC50eXBlICsg
JyIsIGFjdHVhbCAiJyArIGFjdHVhbC50eXBlICsgJyInKTsKKyAgICAgICAgICAgICAgICBzdWNj
ZXNzID0gZmFsc2U7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChhY3R1YWwudHlw
ZSAhPSAidW5kZWZpbmVkIikgeworICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgYWN0dWFsLnZh
bHVlICE9IHR5cGVvZiBleHBlY3RlZC52YWx1ZSkgeworICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygnRkFJTDogc3RlcCAnICsgc3RlcCArICc6IGV4cGVjdCB2YWx1ZSB0eXBl
ICInICsgdHlwZW9mIGV4cGVjdGVkLnZhbHVlICsgJyIsIGFjdHVhbCAiJyArIHR5cGVvZiBhY3R1
YWwudmFsdWUgKyAnIicpOworICAgICAgICAgICAgICAgICAgICBzdWNjZXNzID0gZmFsc2U7Cisg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaWYgKGFjdHVhbC52YWx1ZSAhPSBl
eHBlY3RlZC52YWx1ZSkgeworICAgICAgICAgICAgICAgICAgICB2YXIgYWN0dWFsUmVzdWx0Cisg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCdGQUlMOiBzdGVwICcgKyBzdGVw
ICsgJzogZXhwZWN0IHZhbHVlICInICsgZXhwZWN0ZWQudmFsdWUgKyAnIiwgYWN0dWFsICInICsg
YWN0dWFsLnZhbHVlICsgJyInKTsKKyAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyA9IGZhbHNl
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKHN1
Y2Nlc3MpCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coJ1BBU1M6IHN0ZXAgJyAr
IHN0ZXAgKyAnOiB0eXBlICInICsgYWN0dWFsLnR5cGUgKyAnIiB2YWx1ZSAiJyArIGFjdHVhbC52
YWx1ZSArICciJyk7CisgICAgICAgIH0KKworICAgICAgICBzd2l0Y2ggKHN0ZXApIHsKKyAgICAg
ICAgY2FzZSAwOgorICAgICAgICAgICAgYXNzZXJ0VGhpc1ZhbHVlKDAsIG1lc3NhZ2VPYmplY3Qu
cGFyYW1zLmNhbGxGcmFtZXNbMV0udGhpcywgeworICAgICAgICAgICAgICAgICJ0eXBlIjogIm51
bWJlciIsCisgICAgICAgICAgICAgICAgInZhbHVlIjogMgorICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICBhc3NlcnRUaGlz
VmFsdWUoMSwgbWVzc2FnZU9iamVjdC5wYXJhbXMuY2FsbEZyYW1lc1sxXS50aGlzLCB7CisgICAg
ICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgICAgICAgICAidmFsdWUiOiAi
SGVsbG8iCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIGNh
c2UgMjoKKyAgICAgICAgICAgIGFzc2VydFRoaXNWYWx1ZSgyLCBtZXNzYWdlT2JqZWN0LnBhcmFt
cy5jYWxsRnJhbWVzWzFdLnRoaXMsIHsKKyAgICAgICAgICAgICAgICAidHlwZSI6ICJudW1iZXIi
LAorICAgICAgICAgICAgICAgICJ2YWx1ZSI6IDIKKyAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgYnJlYWs7CisKKyAgICAgICAgY2FzZSAzOgorICAgICAgICAgICAgYXNzZXJ0VGhpc1ZhbHVl
KDMsIG1lc3NhZ2VPYmplY3QucGFyYW1zLmNhbGxGcmFtZXNbMV0udGhpcywgeworICAgICAgICAg
ICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAgICAgInZhbHVlIjogIkhlbGxv
IgorICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIDQ6
CisgICAgICAgICAgICBhc3NlcnRUaGlzVmFsdWUoNCwgbWVzc2FnZU9iamVjdC5wYXJhbXMuY2Fs
bEZyYW1lc1sxXS50aGlzLCB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAidW5kZWZpbmVkIgor
ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIDU6Cisg
ICAgICAgICAgICBhc3NlcnRUaGlzVmFsdWUoNSwgbWVzc2FnZU9iamVjdC5wYXJhbXMuY2FsbEZy
YW1lc1sxXS50aGlzLCB7CisgICAgICAgICAgICAgICAgInR5cGUiOiAidW5kZWZpbmVkIgorICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5yZXN1bWUiLCB7fSk7CisgICAgICAgIGlm
IChzdGVwID09IDUpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwor
ICAgICAgICBzdGVwKys7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
PkRlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4gJmx0O3NjcmlwdCZndDs8
L3A+Cis8c2NyaXB0Pi8vIExpbmUgMAorInVzZSBzdHJpY3QiOyAvLyBMaW5lIDEKK2Z1bmN0aW9u
IGJyZWFrV2l0aE1lc3NhZ2UobWVzc2FnZSkgeyAvLyBMaW5lIDIKKyAgICBtZXNzYWdlOyAvLyBM
aW5lIDMKK30KK2Z1bmN0aW9uIGFjY2Vzc1RoaXMoKSB7CisgICAgYnJlYWtXaXRoTWVzc2FnZSgi
dGhpcyBpcyAiICsgdGhpcyk7Cit9CitmdW5jdGlvbiBkb250QWNjZXNzVGhpcygpIHsKKyAgICBi
cmVha1dpdGhNZXNzYWdlKCJub3QgYWNjZXNzaW5nIHRoaXMiKTsKK30KK2Z1bmN0aW9uIHRlc3RG
dW5jdGlvbigpIHsKKyAgICB2YXIgdGhpc1ZhbHVlID0gMjsKKyAgICBhY2Nlc3NUaGlzLmJpbmQo
dGhpc1ZhbHVlKSgpOworCisgICAgdGhpc1ZhbHVlID0gIkhlbGxvIjsKKyAgICBhY2Nlc3NUaGlz
LmJpbmQodGhpc1ZhbHVlKSgpOworCisgICAgdGhpc1ZhbHVlID0gMjsKKyAgICBkb250QWNjZXNz
VGhpcy5iaW5kKHRoaXNWYWx1ZSkoKTsKKworICAgIHRoaXNWYWx1ZSA9ICJIZWxsbyI7CisgICAg
ZG9udEFjY2Vzc1RoaXMuYmluZCh0aGlzVmFsdWUpKCk7CisKKyAgICBmdW5jdGlvbiBmb28oKSB7
CisgICAgICAgIHZhciBmb29TdHVmZiA9IDE7CisgICAgICAgIGZ1bmN0aW9uIGdvbygpIHsKKyAg
ICAgICAgICAgIGFjY2Vzc1RoaXMoKTsKKworICAgICAgICAgICAgZG9udEFjY2Vzc1RoaXMoKTsK
KworICAgICAgICAgICAgcmV0dXJuIGZvb1N0dWZmOworICAgICAgICB9CisgICAgICAgIGdvbygp
OworICAgIH0KKyAgICBmb28oKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXN0YXRlbWVu
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXIt
c3RhdGVtZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MzExOGYwOWI4YjMxYTZiNTEwNzg2
MmY3ZjdlMzY1ZDNkNjc0ODNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXN0YXRlbWVudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5
IEBACitEZWJ1Z2dlciBzdGF0ZW1lbnQgc2hvdWxkIGJyZWFrIGluIGRlYnVnZ2VyLgorCitGb3Vu
ZCBicmVha3BvaW50LmpzCitJbiBmdW5jdGlvbiB3aXRoIGRlYnVnZ2VyIHN0YXRlbWVudAorQnJv
a2UgYXQgZGVidWdnZXIgc3RhdGVtZW50CisKK0FmdGVyIGRlYnVnZ2VyIHN0YXRlbWVudAorUEFT
UworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXIt
c3RhdGVtZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGVidWdnZXIt
c3RhdGVtZW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQzMDI0Mjk2NDlmYjdjOTFjNWJmYmQ5YzdlZjkx
MTBhYmI4ZWZlYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9kZWJ1Z2dlci1zdGF0ZW1lbnQuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9w
cm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYnJlYWtw
b2ludC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisvLyBQdXQgdGhpcyBoZXJlIGluc3RlYWQg
b2Ygb24gPGJvZHkgb25sb2FkPiB0byBwcmV2ZW50IGFuIGV4dHJhIERlYnVnZ2VyLnNjcmlwdFBh
cnNlZCBldmVudC4KK3dpbmRvdy5vbmxvYWQgPSBydW5UZXN0OworCitmdW5jdGlvbiB0ZXN0KCkK
K3sKKyAgICAvLyBUaGlzIHRlc3Qgc2V0dGluZyAyIGJyZWFrcG9pbnRzIGluIERGRyBjb21waWxl
ZCBmdW5jdGlvbnM6IG9uZSBpbmxpbmVkLAorICAgIC8vIGFuZCBvbmUgbm90IGlubGluZWQuCisK
KyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7CisK
KyAgICB2YXIgYnJlYWtwb2ludEZvdW5kID0gZmFsc2U7CisKKyAgICBJbnNwZWN0b3JUZXN0LmV2
ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2Jq
ZWN0KQorICAgIHsKKyAgICAgICAgaWYgKC9yZXNvdXJjZXNcL2JyZWFrcG9pbnRcLmpzJC8udGVz
dChtZXNzYWdlT2JqZWN0LnBhcmFtcy51cmwpKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZygiRm91bmQgYnJlYWtwb2ludC5qcyIpOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwgeworICAgICAgICAgICAgICAgIGV4cHJl
c3Npb246ICJkZWJ1Z2dlclN0YXRlbWVudCgpOyIKKyAgICAgICAgICAgIH0sIGZ1bmN0aW9uKHJl
c3BvbnNlT2JqZWN0KSB7CisgICAgICAgICAgICAgICAgaWYgKGJyZWFrcG9pbnRGb3VuZCkKKyAg
ICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1MiKTsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIu
cGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQorICAgIHsKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIkJyb2tlIGF0IGRlYnVnZ2VyIHN0YXRlbWVudFxuIik7CisgICAgICAgIGJy
ZWFrcG9pbnRGb3VuZCA9IHRydWU7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IkRlYnVnZ2VyLnJlc3VtZSIsIHt9KTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHA+RGVidWdnZXIgc3RhdGVtZW50IHNob3VsZCBicmVhayBpbiBkZWJ1Z2dlci48L3A+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvZGlkU2FtcGxlUHJvYmUtbXVsdGlwbGUtcHJvYmVzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kaWRTYW1wbGVQcm9iZS1tdWx0aXBsZS1wcm9iZXMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2NzMxNjJjN2Y2MTVmZmQxYmFkYjQyNzNiNWRjZjEw
NjcwNTdiOGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvZGlkU2FtcGxlUHJvYmUtbXVsdGlwbGUtcHJvYmVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE0IEBACitEZWJ1Z2dlci5zZXRCcmVha3BvaW50IHdpdGggbXVsdGlwbGUgcHJvYmUgYWN0aW9u
cyBhdCB0aGUgc2FtZSBicmVha3BvaW50LiBUZXN0IERlYnVnZ2VyLmRpZFNhbXBsZVByb2JlIGV2
ZW50cyBmb3IgdGhlIHByb2JlIHNhbXBsZXMuCisKK0ZvdW5kIGJyZWFrcG9pbnQuanMKK1J1bm5p
bmcgYnJlYWtwb2ludEFjdGlvbnMgdG8gdHJpZ2dlciBwcm9iZSBzYW1wbGVzLgoraW5zaWRlIGJy
ZWFrcG9pbnRBY3Rpb25zIGE6KDEyKSBiOihbb2JqZWN0IE9iamVjdF0pCitpbnNpZGUgYnJlYWtw
b2ludEFjdGlvbnMgYTooMTIpIGI6KFtvYmplY3QgT2JqZWN0XSkKK1JlY2VpdmVkIHByb2JlIHNh
bXBsZSBwYXlsb2FkOiB7InR5cGUiOiJudW1iZXIiLCJ2YWx1ZSI6MTIsImRlc2NyaXB0aW9uIjoi
MTIifQorUmVjZWl2ZWQgcHJvYmUgc2FtcGxlIHBheWxvYWQ6IHsidHlwZSI6Im51bWJlciIsInZh
bHVlIjoxMiwiZGVzY3JpcHRpb24iOiIxMiJ9CitSZWNlaXZlZCBwcm9iZSBzYW1wbGUgcGF5bG9h
ZDogeyJ0eXBlIjoibnVtYmVyIiwidmFsdWUiOjEyLCJkZXNjcmlwdGlvbiI6IjEyIn0KK1JlY2Vp
dmVkIHByb2JlIHNhbXBsZSBwYXlsb2FkOiB7InR5cGUiOiJudW1iZXIiLCJ2YWx1ZSI6MTIsImRl
c2NyaXB0aW9uIjoiMTIifQorUEFTUzogU2FtcGxlcyBmcm9tIGRpZmZlcmVudCBwcm9iZSBhY3Rp
b25zIHNob3VsZCBoYXZlIHVuaXF1ZSBhY3Rpb24gaWRlbnRpZmllcnMuCitQQVNTOiBTYW1wbGVz
IGZyb20gcHJvYmUgYWN0aW9ucyBvbiB0aGUgc2FtZSBicmVha3BvaW50IHNob3VsZCBoYXZlIHRo
ZSBzYW1lIGJhdGNoIGlkZW50aWZpZXJzLgorUEFTUzogU2FtcGxlSWRzIGZyb20gYSBhbnkgcHJv
YmUgYXJlIHNlcXVlbnRpYWwgYW5kIHN0YXJ0IGNvdW50aW5nIGZyb20gb25lLgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGlkU2FtcGxlUHJvYmUtbXVsdGlw
bGUtcHJvYmVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZGlkU2FtcGxl
UHJvYmUtbXVsdGlwbGUtcHJvYmVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDIyYWMwMmU2OGRhMTA2Yjlm
YWU4OTVkMWRiODFlZWZiZmUyYWRlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9kaWRTYW1wbGVQcm9iZS1tdWx0aXBsZS1wcm9iZXMuaHRtbApAQCAt
MCwwICsxLDk0IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvYnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVu
Y3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5pbXBvcnRTY3JpcHQoInByb2JlLXRl
c3QuanMiKTsKKworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJs
ZSIsIHt9KTsKKworICAgIHZhciBzYW1wbGVzID0gW107CisgICAgY29uc3QgZXhwZWN0ZWRTYW1w
bGVDb3VudCA9IDQ7CisKKyAgICBmdW5jdGlvbiByZWNlaXZlZEFsbEV4cGVjdGVkU2FtcGxlcygp
IHsKKyAgICAgICAgcmV0dXJuIHNhbXBsZXMubGVuZ3RoID09PSBleHBlY3RlZFNhbXBsZUNvdW50
OworICAgIH0KKworICAgIGZ1bmN0aW9uIGR1bXBTYW1wbGVzKCkgeworICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHNhbXBsZXMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiU2FtcGxlICIgKyAoaSArIDEpICsgIjogIiArIEpTT04uc3RyaW5naWZ5KHNhbXBs
ZXNbaV0pKTsKKyAgICB9CisKKyAgICB2YXIgdGVzdHMgPSBbCisgICAgICAgIHsKKyAgICAgICAg
ICAgIG1lc3NhZ2U6ICJTYW1wbGVzIGZyb20gZGlmZmVyZW50IHByb2JlIGFjdGlvbnMgc2hvdWxk
IGhhdmUgdW5pcXVlIGFjdGlvbiBpZGVudGlmaWVycy4iLAorICAgICAgICAgICAgcHJlZGljYXRl
OiBmdW5jdGlvbiBzYW1wbGVzSGF2ZVVuaXF1ZUFjdGlvbklkcygpIHsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gc2FtcGxlc1swXS5wcm9iZUlkICE9PSBzYW1wbGVzWzFdLnByb2JlSWQ7CisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgZXJyb3I6IGR1bXBTYW1wbGVzCisgICAgICAgIH0sCisg
ICAgICAgIHsKKyAgICAgICAgICAgIG1lc3NhZ2U6ICJTYW1wbGVzIGZyb20gcHJvYmUgYWN0aW9u
cyBvbiB0aGUgc2FtZSBicmVha3BvaW50IHNob3VsZCBoYXZlIHRoZSBzYW1lIGJhdGNoIGlkZW50
aWZpZXJzLiIsCisgICAgICAgICAgICBwcmVkaWNhdGU6IGZ1bmN0aW9uIHNhbXBsZXNIYXZlRXF1
YWxCYXRjaElkcygpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gc2FtcGxlc1swXS5iYXRjaElk
ID09PSBzYW1wbGVzWzFdLmJhdGNoSWQ7CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgZXJy
b3I6IGR1bXBTYW1wbGVzCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgIG1lc3Nh
Z2U6ICJTYW1wbGVJZHMgZnJvbSBhIGFueSBwcm9iZSBhcmUgc2VxdWVudGlhbCBhbmQgc3RhcnQg
Y291bnRpbmcgZnJvbSBvbmUuIiwKKyAgICAgICAgICAgIHByZWRpY2F0ZTogZnVuY3Rpb24gc2Ft
cGxlc0hhdmVTZXF1ZW50aWFsSWRzKCkgeworICAgICAgICAgICAgICAgIHJldHVybiBzYW1wbGVz
LmV2ZXJ5KGZ1bmN0aW9uKHNhbXBsZSwgaWR4KSB7IHJldHVybiBzYW1wbGUuc2FtcGxlSWQgPT09
IGlkeCArIDE7IH0pOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGVycm9yOiBkdW1wU2Ft
cGxlcworICAgICAgICB9LAorICAgIF07CisKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxl
clsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQorICAg
IHsKKyAgICAgICAgaWYgKC9yZXNvdXJjZXNcL2JyZWFrcG9pbnRcLmpzJC8udGVzdChtZXNzYWdl
T2JqZWN0LnBhcmFtcy51cmwpKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRm91
bmQgYnJlYWtwb2ludC5qcyIpOworICAgICAgICAgICAgdmFyIHNjcmlwdElkZW50aWZpZXIgPSBt
ZXNzYWdlT2JqZWN0LnBhcmFtcy5zY3JpcHRJZDsKKyAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9
IHtzY3JpcHRJZDogc2NyaXB0SWRlbnRpZmllciwgbGluZU51bWJlcjogMTgsIGNvbHVtbk51bWJl
cjogMH07CisgICAgICAgICAgICB2YXIgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgICAgICBhdXRv
Q29udGludWU6IHRydWUsCisgICAgICAgICAgICAgICAgYWN0aW9uczogWworICAgICAgICAgICAg
ICAgICAgICB7InR5cGUiOiAicHJvYmUiLCAiZGF0YSI6ICJhIiwgImlkIjogMX0sCisgICAgICAg
ICAgICAgICAgICAgIHsidHlwZSI6ICJwcm9iZSIsICJkYXRhIjogImEiLCAiaWQiOiAyfQorICAg
ICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnQiLCB7bG9jYXRpb246IGxvY2F0
aW9uLCBvcHRpb25zOiBvcHRpb25zfSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVzcG9uc2VPYmplY3QpOwor
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlJ1bm5pbmcgYnJlYWtwb2ludEFj
dGlvbnMgdG8gdHJpZ2dlciBwcm9iZSBzYW1wbGVzLiIpOworICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogImJy
ZWFrcG9pbnRBY3Rpb25zKDEyLCB7eDoxLHk6Mn0pIn0pOworICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogImJy
ZWFrcG9pbnRBY3Rpb25zKDEyLCB7eDoxLHk6Mn0pIn0pOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIu
ZGlkU2FtcGxlUHJvYmUiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgeworICAgICAg
ICB2YXIgc2FtcGxlID0gUHJvYmVIZWxwZXIuc2ltcGxpZmllZFByb2JlU2FtcGxlKG1lc3NhZ2VP
YmplY3QpOworICAgICAgICBzYW1wbGVzLnB1c2goc2FtcGxlKTsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIlJlY2VpdmVkIHByb2JlIHNhbXBsZSBwYXlsb2FkOiAiICsgSlNPTi5zdHJpbmdp
Znkoc2FtcGxlLnBheWxvYWQpKTsKKworICAgICAgICBpZiAocmVjZWl2ZWRBbGxFeHBlY3RlZFNh
bXBsZXMoKSkgeworICAgICAgICAgICAgdGVzdHMuZm9yRWFjaChmdW5jdGlvbih0ZXN0KSB7Cisg
ICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHRlc3QucHJlZGljYXRlKCk7CisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQocmVzdWx0LCB0ZXN0Lm1lc3NhZ2UpOworICAgICAg
ICAgICAgICAgIGlmICghcmVzdWx0KQorICAgICAgICAgICAgICAgICAgICB0ZXN0LmVycm9yKCk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0
KCk7CisgICAgICAgIH0KKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KKzxwPkRlYnVnZ2VyLnNldEJyZWFrcG9pbnQgd2l0aCBtdWx0aXBsZSBw
cm9iZSBhY3Rpb25zIGF0IHRoZSBzYW1lIGJyZWFrcG9pbnQuIFRlc3QgRGVidWdnZXIuZGlkU2Ft
cGxlUHJvYmUgZXZlbnRzIGZvciB0aGUgcHJvYmUgc2FtcGxlcy48L3A+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvaGl0LWJyZWFr
cG9pbnQtZnJvbS1jb25zb2xlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9oaXQtYnJlYWtwb2ludC1mcm9tLWNvbnNvbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ3NjY0OWQyNTc1YzQ3NjhhOTg3MjBiZDUxNGFhYjAxMjEyYWUxNDYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvaGl0LWJyZWFrcG9pbnQtZnJv
bS1jb25zb2xlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK0RlYnVnZ2VyLnNldEJyZWFr
cG9pbnQgb24gbGluZToxOCBpbiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2JyZWFrcG9pbnQuanMi
PgorCitGb3VuZCBicmVha3BvaW50LmpzCitpbnNpZGUgYnJlYWtwb2ludEFjdGlvbnMgYTooMikg
YjooW29iamVjdCBPYmplY3RdKQoraW5zaWRlIGJyZWFrcG9pbnRBY3Rpb25zIGE6KDEyKSBiOihb
b2JqZWN0IE9iamVjdF0pCitIaXQgQnJlYWtwb2ludCEKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2hpdC1icmVha3BvaW50LWZyb20tY29uc29sZS5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2hpdC1icmVha3BvaW50LWZyb20t
Y29uc29sZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyZDU1YzQ5NWRkY2M5OWYzNGUwMTVmMDVkMTMzOTA2
MjZmNzlhZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvaGl0LWJyZWFrcG9pbnQtZnJvbS1jb25zb2xlLmh0bWwKQEAgLTAsMCArMSw0MiBAQAorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNv
dXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L2JyZWFrcG9pbnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQorewor
ICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKKwor
ICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQiXSA9
IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgeworICAgICAgICBpZiAoL3Jlc291cmNlc1wv
YnJlYWtwb2ludFwuanMkLy50ZXN0KG1lc3NhZ2VPYmplY3QucGFyYW1zLnVybCkpIHsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGb3VuZCBicmVha3BvaW50LmpzIik7CisgICAgICAg
ICAgICB2YXIgc2NyaXB0SWRlbnRpZmllciA9IG1lc3NhZ2VPYmplY3QucGFyYW1zLnNjcmlwdElk
OworICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0ge3NjcmlwdElkOiBzY3JpcHRJZGVudGlmaWVy
LCBsaW5lTnVtYmVyOiAxOCwgY29sdW1uTnVtYmVyOiAwfTsKKyAgICAgICAgICAgIHZhciBvcHRp
b25zID0geworICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogImEgPiAxMCIsCisgICAgICAgICAg
ICB9OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0
QnJlYWtwb2ludCIsIHtsb2NhdGlvbjogbG9jYXRpb24sIG9wdGlvbnM6IG9wdGlvbnN9LCBmdW5j
dGlvbihyZXNwb25zZU9iamVjdCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hl
Y2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7CisgICAgICAgICAgICAgICAgLy8gU2hvdWxkIE5P
VCBoaXQgYnJlYWtwb2ludCAoYSA8IDEwKS4KKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJicmVha3BvaW50
QWN0aW9ucygyLCB7eDoxLHk6Mn0pIn0pOworICAgICAgICAgICAgICAgIC8vIFNob3VsZCBoaXQg
YnJlYWtwb2ludCAoYSA+IDEwKS4KKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRD
b21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJicmVha3BvaW50QWN0aW9u
cygxMiwge3g6MSx5OjJ9KSJ9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQor
CisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnBhdXNlZCJdID0gZnVu
Y3Rpb24obWVzc2FnZU9iamVjdCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJI
aXQgQnJlYWtwb2ludCEiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1MiKTsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9CisKK30KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+RGVidWdnZXIuc2V0QnJl
YWtwb2ludCBvbiBsaW5lOjE4IGluICZsdDtzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYnJlYWtwb2lu
dC5qcyImZ3Q7PC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL25lc3RlZC1pbnNwZWN0b3JzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9ycy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjJjMmRmNjNkOTg4NGQzMzM2OWVkM2E3NDU4YTg3MzgxOTdmMDhkZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9uZXN0ZWQtaW5z
cGVjdG9ycy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTogRXJyb3I6IFBBU1M6IEV4cGVjdGVkIGV4Y2VwdGlvbgorQ2hlY2tpbmcgdGhhdCB0aGUg
aW5zcGVjdG9yIGNvZGUgY2FuIGJlIGRlYnVnZ2VkIHVzaW5nIGEgc2Vjb25kIGluc3BlY3RvciB3
aW5kb3cuCisKK0RlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIC0gYWxsCitQQVNTOiBQYXVz
ZWQhCitQQVNTOiBSZXN1bWVkIQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvbmVzdGVkLWluc3BlY3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9uZXN0ZWQtaW5zcGVjdG9ycy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmMThiZGMwZDIxMWIx
YmE2ZDhhN2QwM2M2OGI1Mjg5ZjZjMWU5NzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvbmVzdGVkLWluc3BlY3RvcnMuaHRtbApAQCAtMCwwICsxLDU0
IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvZXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0
KCkKK3sKKyAgICBmdW5jdGlvbiB0ZXN0RnVuY3Rpb24oKSB7CisgICAgICAgIC8vIFRoaXMgZnVu
Y3Rpb24gcnVucyBpbiB0aGUgc2Vjb25kIGluc3BlY3RvciB3aW5kb3cuIFdlIGNhbiB1c2UgdGhp
cyBvbmUgdG8gZGVidWcgdGhlIGZpcnN0IGluc3BlY3Rvci4KKworICAgICAgICBJbnNwZWN0b3JU
ZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7CisgICAgICAgIEluc3BlY3Rv
clRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIiwge3N0YXRl
OiAiYWxsIn0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7CisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVzcG9uc2VPYmplY3QpOworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIC0gYWxsIik7CisKKyAg
ICAgICAgICAgIC8vIFRyaWdnZXIgYW4gZXhjZXB0aW9uIGluIHRoZSBtYWluIGluc3BlY3Rvci4K
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUi
LCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRocm93IG5ldyBFcnJvcign
UEFTUzogRXhwZWN0ZWQgZXhjZXB0aW9uJykgfSwgMCk7In0pOworICAgICAgICB9KTsKKworICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5j
dGlvbihtZXNzYWdlT2JqZWN0KQorICAgICAgICB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmxvZygiUEFTUzogUGF1c2VkISIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiRGVidWdnZXIucmVzdW1lIiwge30pOworICAgICAgICB9CisKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnJlc3VtZWQiXSA9IGZ1bmN0aW9uKG1lc3Nh
Z2VPYmplY3QpCisgICAgICAgIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNT
OiBSZXN1bWVkISIpOworCisgICAgICAgICAgICAvLyBSZXZlcnQgRGVidWdnZXIuc2V0UGF1c2VP
bkV4Y2VwdGlvbnMgYXMgaXQgY2FuIGhhdmUgYW4gaW1wYWN0IG9uIHRoZSBmb2xsb3dpbmcgdGVz
dHMuCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRQ
YXVzZU9uRXhjZXB0aW9ucyIsIHtzdGF0ZTogIm5vbmUifSwgZnVuY3Rpb24ocmVzcG9uc2VPYmpl
Y3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9OworCisgICAgd2luZG93LmxvZyA9IEluc3Bl
Y3RvclRlc3QubG9nLmJpbmQoSW5zcGVjdG9yVGVzdCk7CisgICAgd2luZG93LmNsb3NlVGVzdCA9
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuY2xvc2VEdW1teUlu
c3BlY3RvckZyb250ZW5kKCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7
CisgICAgfQorCisgICAgdmFyIHNlY29uZEluc3BlY3RvckZyb250ZW5kID0gd2luZG93LmludGVy
bmFscy5vcGVuRHVtbXlJbnNwZWN0b3JGcm9udGVuZCgiUHJvdG9jb2xUZXN0U3R1Yi5odG1sIik7
CisgICAgc2Vjb25kSW5zcGVjdG9yRnJvbnRlbmQuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIGZ1
bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHNlY29uZEluc3BlY3RvckZyb250ZW5kLnBvc3RNZXNz
YWdlKCIoIiArIHRlc3RGdW5jdGlvbi50b1N0cmluZygpICsiKSgpOyIsICIqIik7CisgICAgfSk7
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPkNo
ZWNraW5nIHRoYXQgdGhlIGluc3BlY3RvciBjb2RlIGNhbiBiZSBkZWJ1Z2dlZCB1c2luZyBhIHNl
Y29uZCBpbnNwZWN0b3Igd2luZG93LjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZS1kZWRpY2F0ZWQtd29ya2VyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZS1kZWRpY2F0
ZWQtd29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNDEyMzk0NmQwYzhjNGZmNGYyMzMy
NGYyMjZhOWEyY2I2ZDliOWNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3BhdXNlLWRlZGljYXRlZC13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNSBAQAorU3RhcnRlZCB3b3JrZXIKK1dvcmtlciBjcmVhdGVkCitkaWRDb25uZWN0VG9Xb3Jr
ZXIKK1NVQ0NFU1M6IFdvcmtlciBwYXVzZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3BhdXNlLWRlZGljYXRlZC13b3JrZXIuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZS1kZWRpY2F0ZWQtd29ya2VyLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTZmYmRhOGMzODMxM2Y0YzNjZjMwNmZkNGIwYmY5MTQ1ZDIyOGYyNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZS1kZWRpY2F0ZWQtd29y
a2VyLmh0bWwKQEAgLTAsMCArMSw2MyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNl
cy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2YXIgd29ya2VyOworZnVu
Y3Rpb24gc3RhcnRXb3JrZXJBbmRSdW5UZXN0KCkKK3sKKyAgICB3b3JrZXIgPSBuZXcgV29ya2Vy
KCJyZXNvdXJjZXMvZGVkaWNhdGVkLXdvcmtlci5qcyIpOworICAgIHdvcmtlci5vbm1lc3NhZ2Ug
PSBmdW5jdGlvbihldmVudCkgeyB9OworICAgIHdvcmtlci5wb3N0TWVzc2FnZSgxKTsKKyAgICBs
b2coIlN0YXJ0ZWQgd29ya2VyIik7CisgICAgcnVuVGVzdCgpOworfQorCitmdW5jdGlvbiB0ZXN0
KCkKK3sKKyAgICB2YXIgd29ya2VySWQ7CisgICAgdmFyIHdvcmtlclJlcXVlc3RJZCA9IDE7Cisg
ICAgZnVuY3Rpb24gc2VuZENvbW1hbmRUb1dvcmtlcihtZXRob2QsIHBhcmFtcykKKyAgICB7Cisg
ICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIldvcmtlci5zZW5kTWVzc2FnZVRvV29y
a2VyIiwgeworICAgICAgICAgICAgIndvcmtlcklkIjogd29ya2VySWQsCisgICAgICAgICAgICAi
bWVzc2FnZSI6IHsKKyAgICAgICAgICAgICAgICAibWV0aG9kIjogbWV0aG9kLAorICAgICAgICAg
ICAgICAgICJwYXJhbXMiOiBwYXJhbXMsCisgICAgICAgICAgICAgICAgImlkIjogd29ya2VyUmVx
dWVzdElkKysKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgSW5zcGVj
dG9yVGVzdC5zZW5kQ29tbWFuZCgiV29ya2VyLmVuYWJsZSIsIHt9LCBmdW5jdGlvbihtZXNzYWdl
T2JqZWN0KSB7CisgICAgICAgIGlmICgiZXJyb3IiIGluIG1lc3NhZ2VPYmplY3QpIHsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiBDb3VsZG4ndCBlbmFibGUgd29ya2VyIGRl
YnVnZ2VyOiAiICsgbWVzc2FnZU9iamVjdC5lcnJvci5tZXNzYWdlKTsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgIH0KKyAgICB9KTsKKworICAgIElu
c3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJXb3JrZXIud29ya2VyQ3JlYXRlZCJdID0gZnVuY3Rp
b24obWVzc2FnZU9iamVjdCkKKyAgICB7CisgICAgICAgIHdvcmtlcklkID0gbWVzc2FnZU9iamVj
dFsicGFyYW1zIl1bIndvcmtlcklkIl07CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJXb3Jr
ZXIgY3JlYXRlZCIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJXb3JrZXIu
Y29ubmVjdFRvV29ya2VyIiwgeyAid29ya2VySWQiOiB3b3JrZXJJZCB9LCBmdW5jdGlvbihtZXNz
YWdlT2JqZWN0KSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiZGlkQ29ubmVjdFRv
V29ya2VyIik7CisgICAgICAgICAgICBzZW5kQ29tbWFuZFRvV29ya2VyKCJEZWJ1Z2dlci5lbmFi
bGUiLCB7fSk7CisgICAgICAgICAgICBzZW5kQ29tbWFuZFRvV29ya2VyKCJEZWJ1Z2dlci5wYXVz
ZSIsIHt9KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhh
bmRsZXJbIldvcmtlci5kaXNwYXRjaE1lc3NhZ2VGcm9tV29ya2VyIl0gPSBmdW5jdGlvbihtZXNz
YWdlT2JqZWN0KQorICAgIHsKKyAgICAgICAgdmFyIG1lc3NhZ2UgPSBtZXNzYWdlT2JqZWN0WyJw
YXJhbXMiXVsibWVzc2FnZSJdOworICAgICAgICBpZiAobWVzc2FnZVsibWV0aG9kIl0gPT09ICJE
ZWJ1Z2dlci5wYXVzZWQiKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU1VDQ0VT
UzogV29ya2VyIHBhdXNlZCIpOworICAgICAgICAgICAgc2VuZENvbW1hbmRUb1dvcmtlcigiRGVi
dWdnZXIuZGlzYWJsZSIsIHt9KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7CisgICAgICAgIH0KKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
TG9hZD0ic3RhcnRXb3JrZXJBbmRSdW5UZXN0KCk7Ij4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZS1vbi1hc3NlcnQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3BhdXNlLW9uLWFzc2Vy
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODlhOWJmOThiOGYxZTk3OTk2ZmEyOThmMzk4YzZj
Y2U3ZDRlNzcxNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9wYXVzZS1vbi1hc3NlcnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKK0NPTlNP
TEUgTUVTU0FHRTogbGluZSAxMDogU2hvdWxkIGFsd2F5cyBmYWlsLgorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDIyOiBBU1NFUlQgbWVzc2FnZQorVGVzdCB0aGF0IGEgZmFpbGluZyBjb25zb2xlLmFz
c2VydCB3aWxsIHBhdXNlIGluIHRoZSBkZWJ1Z2dlciB3aXRoIGFuIG9wdGlvbmFsIG1lc3NhZ2Uu
CisKK1Nob3VsZCBub3QgcGF1c2Ugb24gcGFzc2luZyBhc3NlcnQuCitpbnNpZGUgYXNzZXJ0T2th
eQorU2hvdWxkIHBhdXNlIG9uIGZhaWxpbmcgYXNzZXJ0LgoraW5zaWRlIGFzc2VydEZhbHNlCitQ
QVNTOiBQYXVzZWQhCitTaG91bGQgbm90IHBhdXNlIG9uIHBhc3NpbmcgYXNzZXJ0LgoraW5zaWRl
IGFzc2VydENvbmRpdGlvbiwgYW5kIGNvbmRpdGlvbiBpcyB0cnVlCitTaG91bGQgcGF1c2Ugb24g
ZmFpbGluZyBhc3NlcnQuCitpbnNpZGUgYXNzZXJ0Q29uZGl0aW9uLCBhbmQgY29uZGl0aW9uIGlz
IGZhbHNlCitQQVNTOiBQYXVzZWQhCitTaG91bGQgbm90IHBhdXNlIG9uIHBhc3NpbmcgYXNzZXJ0
LgoraW5zaWRlIGFzc2VydENvbmRpdGlvbldpdGhNZXNzYWdlLCBhbmQgY29uZGl0aW9uIGlzIHRy
dWUKK1Nob3VsZCBwYXVzZSBvbiBmYWlsaW5nIGFzc2VydCBhbmQgaW5jbHVkZSBhIG1lc3NhZ2Uu
CitpbnNpZGUgYXNzZXJ0Q29uZGl0aW9uV2l0aE1lc3NhZ2UsIGFuZCBjb25kaXRpb24gaXMgZmFs
c2UKK1BBU1M6IFBhdXNlZCEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3BhdXNlLW9uLWFzc2VydC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3BhdXNlLW9uLWFzc2VydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhOGE0Y2VhNzIwMzZmNzNhNmZj
ZTRkYWJlZGVkMmY5ZGFhNWZhMGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvcGF1c2Utb24tYXNzZXJ0Lmh0bWwKQEAgLTAsMCArMSw4MCBAQAorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNv
dXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L2Fzc2VydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAg
SW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOworICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIiwg
e3N0YXRlOiAiYWxsIn0sIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcik7CisKKyAgICB2YXIg
c3RlcCA9IG51bGw7CisgICAgdmFyIHN0ZXBzID0gWworICAgICAgICB7CisgICAgICAgICAgICBt
ZXNzYWdlOiAiU2hvdWxkIG5vdCBwYXVzZSBvbiBwYXNzaW5nIGFzc2VydC4iLAorICAgICAgICAg
ICAgZXZhbHVhdGU6ICJhc3NlcnRUcnVlKCkiLAorICAgICAgICAgICAgcGF1c2U6IGZhbHNlLAor
ICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICBtZXNzYWdlOiAiU2hvdWxkIHBhdXNl
IG9uIGZhaWxpbmcgYXNzZXJ0LiIsCisgICAgICAgICAgICBldmFsdWF0ZTogImFzc2VydEZhbHNl
KCkiLAorICAgICAgICAgICAgcGF1c2U6IHRydWUsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAg
ICAgICAgICAgIG1lc3NhZ2U6ICJTaG91bGQgbm90IHBhdXNlIG9uIHBhc3NpbmcgYXNzZXJ0LiIs
CisgICAgICAgICAgICBldmFsdWF0ZTogImFzc2VydENvbmRpdGlvbih3aW5kb3cpIiwKKyAgICAg
ICAgICAgIHBhdXNlOiBmYWxzZSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAg
bWVzc2FnZTogIlNob3VsZCBwYXVzZSBvbiBmYWlsaW5nIGFzc2VydC4iLAorICAgICAgICAgICAg
ZXZhbHVhdGU6ICJhc3NlcnRDb25kaXRpb24od2luZG93ID09PSBudWxsKSIsCisgICAgICAgICAg
ICBwYXVzZTogdHJ1ZSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgbWVzc2Fn
ZTogIlNob3VsZCBub3QgcGF1c2Ugb24gcGFzc2luZyBhc3NlcnQuIiwKKyAgICAgICAgICAgIGV2
YWx1YXRlOiAiYXNzZXJ0Q29uZGl0aW9uV2l0aE1lc3NhZ2Uod2luZG93LCAnU2hvdWxkIG5vdCBo
YXBwZW4nKSIsCisgICAgICAgICAgICBwYXVzZTogZmFsc2UsCisgICAgICAgIH0sCisgICAgICAg
IHsKKyAgICAgICAgICAgIG1lc3NhZ2U6ICJTaG91bGQgcGF1c2Ugb24gZmFpbGluZyBhc3NlcnQg
YW5kIGluY2x1ZGUgYSBtZXNzYWdlLiIsCisgICAgICAgICAgICBldmFsdWF0ZTogImFzc2VydENv
bmRpdGlvbldpdGhNZXNzYWdlKHdpbmRvdyA9PT0gbnVsbCwgJ0FTU0VSVCBtZXNzYWdlJykiLAor
ICAgICAgICAgICAgcGF1c2U6IHRydWUsCisgICAgICAgIH0sCisgICAgXTsKKworICAgIEluc3Bl
Y3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1bmN0aW9uKG1lc3Nh
Z2VPYmplY3QpCisgICAgeworICAgICAgICBpZiAoc3RlcC5wYXVzZSkKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJQQVNTOiBQYXVzZWQhIik7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiBQYXVzZWQgd2hlbiB1bmV4cGVjdGVkIik7CisK
KyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIucmVzdW1lIiwge30s
IHJ1bk5leHRTdGVwKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5OZXh0U3RlcCgpIHsKKyAg
ICAgICAgc3RlcCA9IHN0ZXBzLnNoaWZ0KCk7CisgICAgICAgIGlmICghc3RlcCkgeworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCisgICAgICAgIC8vIEV2YWx1dGUgdGhlIGNvbW1hbmQgaW5zaWRlIGEgc2V0
VGltZW91dCBzbyB0aGF0IHdlIGNhbiBoaXQgZXhjZXB0aW9ucyBhbmQgYnJlYWsuCisgICAgICAg
IC8vIE90aGVyd2lzZSwgZXZhbHVhdGluZyB0aHJvdWdoIFJ1bnRpbWVBZ2VudCB3aWxsIG5vdCB0
cmlnZ2VyIGEgcGF1c2UuCisgICAgICAgIC8vIExpa2V3aXNlLCBpZiBubyBwYXVzZSBpcyBleHBl
Y3RlZCB3YWl0IGZvciBhIGJpdCBiZWZvcmUgY29udGludWluZy4KKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coc3RlcC5tZXNzYWdlKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigp
eyIgKyBzdGVwLmV2YWx1YXRlICsgIn0sIDApIn0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVzcG9uc2VPYmplY3Qp
OworICAgICAgICAgICAgaWYgKCFzdGVwLnBhdXNlKQorICAgICAgICAgICAgICAgIHNldFRpbWVv
dXQocnVuTmV4dFN0ZXAsIDIwKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgcnVuTmV4dFN0
ZXAoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgor
PHA+VGVzdCB0aGF0IGEgZmFpbGluZyBjb25zb2xlLmFzc2VydCB3aWxsIHBhdXNlIGluIHRoZSBk
ZWJ1Z2dlciB3aXRoIGFuIG9wdGlvbmFsIG1lc3NhZ2UuPC9wPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Byb2JlLW1hbmFnZXIt
YWRkLXJlbW92ZS1hY3Rpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
cHJvYmUtbWFuYWdlci1hZGQtcmVtb3ZlLWFjdGlvbnMuaHRtbAppbmRleCAwZTZkMTFiNDdjZTBi
MjlhOTY4MTI3NzRhZTA1MjAzMjdlY2Q2M2RiLi5mMzEzOGEyOGI1NWZiOTI5MzZhYWZmNTFhY2Nh
MTA0YTliMjI4ZjQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
cHJvYmUtbWFuYWdlci1hZGQtcmVtb3ZlLWFjdGlvbnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvcHJvYmUtbWFuYWdlci1hZGQtcmVtb3ZlLWFjdGlvbnMuaHRtbApA
QCAtMyw3ICszLDcgQEAKIDxoZWFkPgogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0Lmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi9yZXNvdXJjZXMvYnJlYWtwb2lu
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNv
dXJjZXMvc2NyaXB0LWZvci1icmVha3BvaW50LWFjdGlvbnMuanMiPjwvc2NyaXB0PgogPHNjcmlw
dD4KIGZ1bmN0aW9uIHRlc3QoKQogewpAQCAtMjcsNyArMjcsNyBAQCBmdW5jdGlvbiB0ZXN0KCkK
IAogICAgICAgICAgICAgdmFyIHNjcmlwdE9iamVjdCA9IGV2ZW50LmRhdGEuc2NyaXB0OwogCi0g
ICAgICAgICAgICBpZiAoIS9icmVha3BvaW50XC5qcyQvLnRlc3Qoc2NyaXB0T2JqZWN0LnVybCkp
CisgICAgICAgICAgICBpZiAoIS9zY3JpcHRcLWZvclwtYnJlYWtwb2ludFwtYWN0aW9uc1wuanMk
Ly50ZXN0KHNjcmlwdE9iamVjdC51cmwpKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAogICAg
ICAgICAgICAgdmFyIGxvY2F0aW9uID0gc2NyaXB0T2JqZWN0LmNyZWF0ZVNvdXJjZUNvZGVMb2Nh
dGlvbig0LCAwKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9y
ZWdyZXNzLTEzMzE4Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvcmVncmVzcy0xMzMxODItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM1ZmRmNzJkYjQ5ZWIx
NTkyMmM1ZGRjOTc1NTVjZjc0MjBmMDBmZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVncmVzcy0xMzMxODItZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNDggQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0NzogWzFdIFRlc3Rpbmcgc3RhdGVtZW50
ICcoe30pLmEuYi5jLmQ7JworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ4OiBbMV0gUGF1c2VkIGFu
ZCBhYm91dCB0byBzdGVwCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNjA6IFsxXSBSZXN1bWVkCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgNTI6IFsxXSBQYXVzZWQgYWZ0ZXIgc3RlcHBpbmcKK0NPTlNP
TEUgTUVTU0FHRTogbGluZSA2MDogWzFdIFJlc3VtZWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAx
OiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICcoe30p
LmEuYicpCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDc6IFsyXSBUZXN0aW5nIHN0YXRlbWVudCAn
ZXhjZXB0aW9uQmFzaWMoKTsnCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDg6IFsyXSBQYXVzZWQg
YW5kIGFib3V0IHRvIHN0ZXAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA2MDogWzJdIFJlc3VtZWQK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSA1MjogWzJdIFBhdXNlZCBhZnRlciBzdGVwcGluZworQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDYwOiBbMl0gUmVzdW1lZAorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDM6IFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJyh7
fSkuYS5iJykKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0NzogWzNdIFRlc3Rpbmcgc3RhdGVtZW50
ICdleGNlcHRpb25ET00oKTsnCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDg6IFszXSBQYXVzZWQg
YW5kIGFib3V0IHRvIHN0ZXAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA2MDogWzNdIFJlc3VtZWQK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSA1MjogWzNdIFBhdXNlZCBhZnRlciBzdGVwcGluZworQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDYwOiBbM10gUmVzdW1lZAorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDg6IE5vdEZvdW5kRXJyb3I6IERPTSBFeGNlcHRpb24gODogQW4gYXR0ZW1wdCB3YXMgbWFkZSB0
byByZWZlcmVuY2UgYSBOb2RlIGluIGEgY29udGV4dCB3aGVyZSBpdCBkb2VzIG5vdCBleGlzdC4K
K0NPTlNPTEUgTUVTU0FHRTogbGluZSA0NzogWzRdIFRlc3Rpbmcgc3RhdGVtZW50ICdleGNlcHRp
b25Jbkhvc3RGdW5jdGlvbigpOycKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA0ODogWzRdIFBhdXNl
ZCBhbmQgYWJvdXQgdG8gc3RlcAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDYwOiBbNF0gUmVzdW1l
ZAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDUyOiBbNF0gUGF1c2VkIGFmdGVyIHN0ZXBwaW5nCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgNjA6IFs0XSBSZXN1bWVkCitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMjQ6IGV4Y2VwdGlvbiBpbiBob3N0IGZ1bmN0aW9uCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
NDc6IFs1XSBUZXN0aW5nIHN0YXRlbWVudCAndGhyb3dTdHJpbmcoKTsnCitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgNDg6IFs1XSBQYXVzZWQgYW5kIGFib3V0IHRvIHN0ZXAKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSA2MDogWzVdIFJlc3VtZWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA1MjogWzVdIFBh
dXNlZCBhZnRlciBzdGVwcGluZworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDYwOiBbNV0gUmVzdW1l
ZAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzOiBleGNlcHRpb24gc3RyaW5nCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgNDc6IFs2XSBUZXN0aW5nIHN0YXRlbWVudCAndGhyb3dQYXJhbSh7eDoxfSk7
JworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ4OiBbNl0gUGF1c2VkIGFuZCBhYm91dCB0byBzdGVw
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNjA6IFs2XSBSZXN1bWVkCitDT05TT0xFIE1FU1NBR0U6
IGxpbmUgNTI6IFs2XSBQYXVzZWQgYWZ0ZXIgc3RlcHBpbmcKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSA2MDogWzZdIFJlc3VtZWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxODogW29iamVjdCBPYmpl
Y3RdCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDc6IFs3XSBUZXN0aW5nIHN0YXRlbWVudCAndGhy
b3dQYXJhbShuZXcgRXJyb3IoJ2Vycm9yIG1lc3NhZ2UnKSk7JworQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDQ4OiBbN10gUGF1c2VkIGFuZCBhYm91dCB0byBzdGVwCitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgNjA6IFs3XSBSZXN1bWVkCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNTI6IFs3XSBQYXVzZWQg
YWZ0ZXIgc3RlcHBpbmcKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA2MDogWzddIFJlc3VtZWQKK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAxODogRXJyb3I6IGVycm9yIG1lc3NhZ2UKK1JlZ3Jlc3Npb24g
dGVzdCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzE4Mgor
CitTdGVwcGluZyBhZnRlciBicmVha2luZyBvbiB1bmNhdWdodCBleGNlcHRpb25zIHNob3VsZCBu
b3QgY3Jhc2gKKworUEFTUyAtIHBhdXNlZCBmb3IgZWFjaCB1bmNhdWdodCBleGNlcHRpb24KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3JlZ3Jlc3MtMTMzMTgy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVncmVzcy0xMzMxODIuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lOTEyMGUwYTE1OTY3NjcyZjMxYzk3ZDVmZDAwMTg5YjI0ZGExNTk3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3JlZ3Jlc3Mt
MTMzMTgyLmh0bWwKQEAgLTAsMCArMSw3NiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2V4Y2VwdGlvbi5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdmFyIGV4cGVjdFBhdXNlID0gZmFs
c2U7CisgICAgdmFyIGlzU3RlcHBpbmcgPSBmYWxzZTsKKworICAgIHZhciB0ZXN0SW5kZXggPSAw
OworICAgIHZhciBzdGF0ZW1lbnRzV2l0aFVuY2F1Z2h0RXhjZXB0aW9ucyA9IFsKKyAgICAgICAg
Iih7fSkuYS5iLmMuZDsiLAorICAgICAgICAiZXhjZXB0aW9uQmFzaWMoKTsiLAorICAgICAgICAi
ZXhjZXB0aW9uRE9NKCk7IiwKKyAgICAgICAgImV4Y2VwdGlvbkluSG9zdEZ1bmN0aW9uKCk7IiwK
KyAgICAgICAgInRocm93U3RyaW5nKCk7IiwKKyAgICAgICAgInRocm93UGFyYW0oe3g6MX0pOyIs
CisgICAgICAgICJ0aHJvd1BhcmFtKG5ldyBFcnJvcignZXJyb3IgbWVzc2FnZScpKTsiCisgICAg
XTsKKworICAgIGZ1bmN0aW9uIHRyaWdnZXJOZXh0VW5jYXVnaHRFeGNlcHRpb24oKQorICAgIHsK
KyAgICAgICAgLy8gRXZhbHVhdGUgc3RhdGVtZW50IGFuZCBleHBlY3QgdG8gcGF1c2UuCisgICAg
ICAgIGlmICh0ZXN0SW5kZXggPCBzdGF0ZW1lbnRzV2l0aFVuY2F1Z2h0RXhjZXB0aW9ucy5sZW5n
dGgpIHsKKyAgICAgICAgICAgIHZhciBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRzV2l0aFVuY2F1Z2h0
RXhjZXB0aW9uc1t0ZXN0SW5kZXgrK107CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRD
b21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgeyAiICsgc3RhdGVtZW50ICsgIiB9LCAwKTsifSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICAvLyBEb25lIGV2YWx1YXRpbmcgc3RhdGVtZW50cyB0byBw
YXVzZS4gRXZhbHVhdGUgc29tZSBtb3JlIHdlIGRvIG5vdCBleHBlY3QgdG8gcGF1c2UuCisgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTIC0gcGF1c2VkIGZvciBlYWNoIHVuY2F1Z2h0IGV4
Y2VwdGlvbiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0K
KworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsK
KyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0
aW9ucyIsIHtzdGF0ZTogInVuY2F1Z2h0In0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7Cisg
ICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7CisgICAg
ICAgIGV4cGVjdFBhdXNlID0gdHJ1ZTsKKyAgICAgICAgdHJpZ2dlck5leHRVbmNhdWdodEV4Y2Vw
dGlvbigpOworICAgIH0pOworCisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVn
Z2VyLnBhdXNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKKyAgICB7CisgICAgICAgIGlm
ICghZXhwZWN0UGF1c2UpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMIC0g
ZGVidWdnZXIgcGF1c2VkIHdoZW4gd2UgZGlkIG5vdCBleHBlY3QgdG8iKTsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoIWlzU3RlcHBpbmcpIHsKKyAgICAgICAgICAgIGNvbnNvbGUu
bG9nKCJbIiArIHRlc3RJbmRleCArICJdIFRlc3Rpbmcgc3RhdGVtZW50ICciICsgc3RhdGVtZW50
c1dpdGhVbmNhdWdodEV4Y2VwdGlvbnNbdGVzdEluZGV4IC0gMV0gKyAiJyIpOworICAgICAgICAg
ICAgY29uc29sZS5sb2coIlsiICsgdGVzdEluZGV4ICsgIl0gUGF1c2VkIGFuZCBhYm91dCB0byBz
dGVwIik7CisgICAgICAgICAgICBpc1N0ZXBwaW5nID0gdHJ1ZTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnN0ZXBPdmVyIiwge30pOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgY29uc29sZS5sb2coIlsiICsgdGVzdEluZGV4ICsgIl0gUGF1
c2VkIGFmdGVyIHN0ZXBwaW5nIik7CisgICAgICAgICAgICBpc1N0ZXBwaW5nID0gZmFsc2U7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5yZXN1bWUiLCB7
fSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsi
RGVidWdnZXIucmVzdW1lZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKKyAgICB7CisgICAg
ICAgIGNvbnNvbGUubG9nKCJbIiArIHRlc3RJbmRleCArICJdIFJlc3VtZWQiKTsKKyAgICAgICAg
aWYgKCFpc1N0ZXBwaW5nKQorICAgICAgICAgICAgdHJpZ2dlck5leHRVbmNhdWdodEV4Y2VwdGlv
bigpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgorPHA+UmVncmVzc2lvbiB0ZXN0IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTMzMTgyPC9wPgorPHA+U3RlcHBpbmcgYWZ0ZXIgYnJlYWtpbmcgb24gdW5j
YXVnaHQgZXhjZXB0aW9ucyBzaG91bGQgbm90IGNyYXNoPC9wPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9p
bnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3JlbW92ZUJy
ZWFrcG9pbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5MDYwNTAxZWFjOGQ2NDNhZTRiYzYz
NWZkMTJkY2UxMDM5NDdmM2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvcmVtb3ZlQnJlYWtwb2ludC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBA
QAorRGVidWdnZXIucmVtb3ZlQnJlYWtwb2ludAorCitGb3VuZCBicmVha3BvaW50LmpzCitTZXQg
QnJlYWtwb2ludCwgVHJpZ2dlcmluZyBpdAoraW5zaWRlIGJyZWFrcG9pbnRCYXNpYworSGl0IEJy
ZWFrcG9pbnQhCitSZXN1bWVkLCBSZW1vdmluZyBCcmVha3BvaW50IGFuZCB0cnlpbmcgdG8gdHJp
Z2dlciBpdCBhZ2FpbgoraW5zaWRlIGJyZWFrcG9pbnRCYXNpYworUEFTUzogZGlkIG5vdCBoaXQg
YnJlYWtwb2ludCBhZnRlciByZW1vdmluZyBpdC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3JlbW92ZUJyZWFrcG9pbnQuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzNjODYw
ZGYxZTBhY2IxY2Y1MTkwMjIxMzIwYjRhMzQ2ZDE3MDA4OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50Lmh0bWwKQEAgLTAs
MCArMSw2MCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2JyZWFrcG9pbnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0
aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVu
YWJsZSIsIHt9KTsKKworICAgIHZhciBicmVha3BvaW50VHJpZ2dlcmVkID0gMDsKKworICAgIElu
c3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQiXSA9IGZ1bmN0
aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgeworICAgICAgICBpZiAoL3Jlc291cmNlc1wvYnJlYWtw
b2ludFwuanMkLy50ZXN0KG1lc3NhZ2VPYmplY3QucGFyYW1zLnVybCkpIHsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJGb3VuZCBicmVha3BvaW50LmpzIik7CisgICAgICAgICAgICB2
YXIgc2NyaXB0SWRlbnRpZmllciA9IG1lc3NhZ2VPYmplY3QucGFyYW1zLnNjcmlwdElkOworICAg
ICAgICAgICAgdmFyIGxvY2F0aW9uID0ge3NjcmlwdElkOiBzY3JpcHRJZGVudGlmaWVyLCBsaW5l
TnVtYmVyOiAzLCBjb2x1bW5OdW1iZXI6IDB9OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludCIsIHtsb2NhdGlvbjogbG9jYXRpb259
LCBmdW5jdGlvbihyZXNwb25zZU9iamVjdCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIlNldCBCcmVha3BvaW50LCBUcmlnZ2VyaW5nIGl0Iik7CisgICAgICAgICAg
ICAgICAgYnJlYWtwb2ludElkZW50aWZpZXIgPSByZXNwb25zZU9iamVjdC5yZXN1bHQuYnJlYWtw
b2ludElkOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRp
bWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogImJyZWFrcG9pbnRCYXNpYygpIn0pOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFu
ZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQorICAgIHsK
KyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkhpdCBCcmVha3BvaW50ISIpOworICAgICAgICAr
K2JyZWFrcG9pbnRUcmlnZ2VyZWQ7CisKKyAgICAgICAgaWYgKGJyZWFrcG9pbnRUcmlnZ2VyZWQg
PT09IDEpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5y
ZXN1bWUiLCB7fSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkZBSUw6IHNob3VsZCBub3QgaGF2ZSBoaXQgYnJlYWtwb2ludCBhZnRlciBpdCB3YXMgcmVt
b3ZlZC4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIu
cmVzdW1lZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKKyAgICB7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJSZXN1bWVkLCBSZW1vdmluZyBCcmVha3BvaW50IGFuZCB0cnlpbmcgdG8g
dHJpZ2dlciBpdCBhZ2FpbiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJE
ZWJ1Z2dlci5yZW1vdmVCcmVha3BvaW50IiwgeyJicmVha3BvaW50SWQiOiBicmVha3BvaW50SWRl
bnRpZmllcn0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7CisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVzcG9uc2VPYmplY3QpOworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAiYnJl
YWtwb2ludEJhc2ljKCkifSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVzcG9uc2VPYmplY3QpOworICAgICAg
ICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJQQVNTOiBkaWQgbm90IGhpdCBicmVha3BvaW50IGFmdGVyIHJlbW92
aW5nIGl0LiIpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOworICAgICAgICAgICAgICAgIH0sIDUwKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
KTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KKzxwPkRlYnVnZ2VyLnJlbW92ZUJyZWFrcG9pbnQ8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL2Fzc2Vy
dC5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvYXNzZXJ0Lmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjIwNzM0ZTZlMDRiOTdjZWI2NTdkODMwODBiZmJjYzJlYTYwMmU1NjAKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2Vz
L2Fzc2VydC5qcwpAQCAtMCwwICsxLDIzIEBACitmdW5jdGlvbiBhc3NlcnRUcnVlKCkKK3sKKyAg
ICBsb2coImluc2lkZSBhc3NlcnRPa2F5Iik7CisgICAgY29uc29sZS5hc3NlcnQodHJ1ZSwgIlNo
b3VsZCBuZXZlciBoYXBwZW4uIik7Cit9CisKK2Z1bmN0aW9uIGFzc2VydEZhbHNlKCkKK3sKKyAg
ICBsb2coImluc2lkZSBhc3NlcnRGYWxzZSIpOworICAgIGNvbnNvbGUuYXNzZXJ0KGZhbHNlLCAi
U2hvdWxkIGFsd2F5cyBmYWlsLiIpOworfQorCitmdW5jdGlvbiBhc3NlcnRDb25kaXRpb24oY29u
ZGl0aW9uKQoreworICAgIGxvZygiaW5zaWRlIGFzc2VydENvbmRpdGlvbiwgYW5kIGNvbmRpdGlv
biBpcyAiICsgISFjb25kaXRpb24pOworICAgIGNvbnNvbGUuYXNzZXJ0KGNvbmRpdGlvbik7Cit9
CisKK2Z1bmN0aW9uIGFzc2VydENvbmRpdGlvbldpdGhNZXNzYWdlKGNvbmRpdGlvbiwgbWVzc2Fn
ZSkKK3sKKyAgICBsb2coImluc2lkZSBhc3NlcnRDb25kaXRpb25XaXRoTWVzc2FnZSwgYW5kIGNv
bmRpdGlvbiBpcyAiICsgISFjb25kaXRpb24pOworICAgIGNvbnNvbGUuYXNzZXJ0KGNvbmRpdGlv
biwgbWVzc2FnZSk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvcmVzb3VyY2VzL2JyZWFrcG9pbnQuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvcmVzb3VyY2VzL2JyZWFrcG9pbnQuanMKaW5kZXggZDBhMDZhODI5YzhjMWZjYjk4N2EzYmVi
M2NmNzQxMjFmYjE0OWEwZi4uMWNlMDUyMDFiM2NkNmNiMTYxNmI3ODAwNDAwMDk0NzQxNmI3NTA0
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9i
cmVha3BvaW50LmpzCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJj
ZXMvYnJlYWtwb2ludC5qcwpAQCAtMSw1ICsxLDExNSBAQAorZnVuY3Rpb24gYnJlYWtwb2ludEJh
c2ljKCkKK3sKKyAgICBsb2coImluc2lkZSBicmVha3BvaW50QmFzaWMiKTsKK30KKworZnVuY3Rp
b24gYnJlYWtwb2ludFdpdGhDb25kaXRpb24oYSwgYikKK3sKKyAgICBsb2coImluc2lkZSBicmVh
a3BvaW50V2l0aENvbmRpdGlvbiBhOigiICsgYSArICIpIGI6KCIgKyBiICsgIikgYStiOigiICsg
KGErYikgKyAiKSIpOworfQorCitmdW5jdGlvbiBicmVha3BvaW50QXV0b21hdGljYWxseUNvbnRp
bnVlKCkKK3sKKyAgICBsb2coImluc2lkZSBicmVha3BvaW50QXV0b21hdGljYWxseUNvbnRpbnVl
Iik7Cit9CisKIGZ1bmN0aW9uIGJyZWFrcG9pbnRBY3Rpb25zKGEsIGIpCiB7Ci0gICAgLy8gT25s
eSBwcmVzZXJ2ZSB0aGlzIG1lc3NhZ2Ugb24gdGhlIGN1cnJlbnQgdGVzdCBwYWdlIGxvYWQuCi0g
ICAgSW5zcGVjdG9yVGVzdFByb3h5LmFkZFJlc3VsdCgiaW5zaWRlIGJyZWFrcG9pbnRBY3Rpb25z
IGE6KCIgKyBhICsgIikgYjooIiArIGIgKyAiKSIpOworICAgIGxvZygiaW5zaWRlIGJyZWFrcG9p
bnRBY3Rpb25zIGE6KCIgKyBhICsgIikgYjooIiArIGIgKyAiKSIpOworfQorCitmdW5jdGlvbiBu
b3RJbmxpbmVhYmxlKHgpCit7CisgICAgdmFyIGZ1bmMgPSBuZXcgRnVuY3Rpb24oInJldHVybiB4
ICsgMTAwOyIpOworICAgIHJldHVybiB4ICsgMzsKK30KKworZnVuY3Rpb24gaW5saW5lYWJsZSh4
KQoreworICAgIHJldHVybiB4ICsgNTsKK30KKworZnVuY3Rpb24gbm90SW5saW5pbmdGb28oeCkK
K3sKKyAgICByZXR1cm4gbm90SW5saW5lYWJsZSh4KTsKK30KKworZnVuY3Rpb24gaW5saW5pbmdG
b28oeCkKK3sKKyAgICByZXR1cm4gaW5saW5lYWJsZSh4KTsKK30KKworZnVuY3Rpb24gZGZnV2l0
aG91dElubGluZSgpCit7CisgICAgdmFyIGk7CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgZm9y
IChpID0gMDsgaSA8IDEwMDA7IGkrKykKKyAgICAgICAgcmVzdWx0ICs9IG5vdElubGluaW5nRm9v
KGkpOworICAgIGxvZygiZGZnV2l0aG91dElubGluZSByZXN1bHQ6ICIgKyByZXN1bHQpOyAgICAK
K30KKworZnVuY3Rpb24gZGZnV2l0aElubGluZSgpCit7CisgICAgdmFyIGk7CisgICAgdmFyIHJl
c3VsdCA9IDA7CisgICAgZm9yIChpID0gMDsgaSA8IDEwMDA7IGkrKykKKyAgICAgICAgcmVzdWx0
ICs9IGlubGluaW5nRm9vKGkpOworICAgIGxvZygiZGZnV2l0aElubGluZSByZXN1bHQ6ICIgKyBy
ZXN1bHQpOyAgICAKK30KKworZnVuY3Rpb24gbm90SW5saW5lYWJsZTIoeCwgY2FsbEZ1bmN0aW9u
V2l0aEJyZWFrcG9pbnQpCit7CisgICAgdmFyIGZ1bmMgPSBuZXcgRnVuY3Rpb24oInJldHVybiB4
ICsgMTAwOyIpOworICAgIGlmIChjYWxsRnVuY3Rpb25XaXRoQnJlYWtwb2ludCkKKyAgICAgICAg
YnJlYWtwb2ludEJhc2ljKCk7CisgICAgcmV0dXJuIHggKyAzOworfQorCitmdW5jdGlvbiBkZmdX
aXRob3V0SW5saW5lMigpCit7CisgICAgdmFyIGk7CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAg
Zm9yIChpID0gMDsgaSA8IDEwMDA7IGkrKykKKyAgICAgICAgcmVzdWx0ICs9IG5vdElubGluZWFi
bGUyKGksIGZhbHNlKTsKKyAgICBsb2coInJlc3VsdDogIiArIHJlc3VsdCk7Cit9CisKK2Z1bmN0
aW9uIGNhbGxOb3RJbmxpbmVhYmxlMigpCit7CisgICAgdmFyIHJlc3VsdCA9IG5vdElubGluZWFi
bGUyKDEwMDAwLCB0cnVlKTsKKyAgICBpZiAocmVzdWx0ID09IDIwMDAzKQorICAgICAgICBsb2co
IlBBU1M6IHJlc3VsdCBpcyAiICsgcmVzdWx0KTsKKyAgICBlbHNlCisgICAgICAgIGxvZygiRkFJ
TDogcmVzdWx0IGlzICIgKyByZXN1bHQgKyAiLCBleHBlY3RpbmcgMjAwMDMiKTsKK30KKworZnVu
Y3Rpb24gZGVidWdnZXJTdGF0ZW1lbnQoeCkKK3sKKyAgICBsb2coIkluIGZ1bmN0aW9uIHdpdGgg
ZGVidWdnZXIgc3RhdGVtZW50Iik7CisgICAgZGVidWdnZXI7CisgICAgbG9nKCJBZnRlciBkZWJ1
Z2dlciBzdGF0ZW1lbnQiKTsKKyAgICByZXR1cm4geCArIDM7Cit9CisKK2Z1bmN0aW9uIG5vdElu
bGluZWFibGUzKHgpCit7CisgICAgdmFyIGZ1bmMgPSBuZXcgRnVuY3Rpb24oInJldHVybiB4ICsg
MTAwOyIpOworICAgIGlmICh4ID09IDE5OTkpCisgICAgICAgIGJyZWFrcG9pbnRCYXNpYygpOwor
ICAgIHJldHVybiB4ICsgMzsKK30KKwordmFyIGdsb2JhbFZhbDMgPSAwOworCitmdW5jdGlvbiBk
ZmdXaXRob3V0SW5saW5lMygpCit7CisgICAgZ2xvYmFsVmFsMyA9IDA7CisgICAgdmFyIGk7Cisg
ICAgdmFyIHJlc3VsdCA9IDA7CisgICAgdmFyIGxvY2FsVmFsMyA9IDA7CisgICAgZm9yIChpID0g
MDsgaSA8IDIwMDA7IGkrKykKKyAgICAgICAgcmVzdWx0ICs9IG5vdElubGluZWFibGUzKGkpOwor
ICAgIGlmIChnbG9iYWxWYWwzKQorICAgICAgICByZXN1bHQgPSBnbG9iYWxWYWwzICsgbG9jYWxW
YWwzOworICAgIGxvZygicmVzdWx0OiAiICsgcmVzdWx0KTsKIH0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvZGVkaWNhdGVkLXdvcmtlci5qcyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvZGVkaWNhdGVkLXdvcmtl
ci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42ZTFmMDU1ZDNlYjUwZGFkYjlhODJiOWNkYTFkOTAwMzY2MjU3NThj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291
cmNlcy9kZWRpY2F0ZWQtd29ya2VyLmpzCkBAIC0wLDAgKzEsOSBAQAordmFyIG1lc3NhZ2VfaWQg
PSAxOworb25tZXNzYWdlID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgZG9Xb3JrKCk7Cit9OworCitm
dW5jdGlvbiBkb1dvcmsoKSB7CisgIHBvc3RNZXNzYWdlKCJNZXNzYWdlICMiICsgbWVzc2FnZV9p
ZCsrKTsKKyAgc2V0VGltZW91dChkb1dvcmssIDUwKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvZXhjZXB0aW9uLmpzIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9leGNlcHRpb24uanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YTAxNGY0YmFjOTU4MjQ5NjMzZTZmOTM5YWI0ODZjNmJiYTNlMmNkMwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvZXhjZXB0aW9uLmpz
CkBAIC0wLDAgKzEsNDYgQEAKK2Z1bmN0aW9uIGV4Y2VwdGlvbkJhc2ljKCkKK3sKKyAgICAoe30p
LmEuYi5jLmQ7Cit9CisKK2Z1bmN0aW9uIGV4Y2VwdGlvbkRPTSgpCit7CisgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZCgwKTsKK30KKworZnVuY3Rpb24gdGhyb3dTdHJpbmcoKQoreworICAg
IHRocm93ICJleGNlcHRpb24gc3RyaW5nIjsKK30KKworZnVuY3Rpb24gdGhyb3dQYXJhbShvKQor
eworICAgIHRocm93IG87Cit9CisKK2Z1bmN0aW9uIGV4Y2VwdGlvbkluSG9zdEZ1bmN0aW9uKCkK
K3sKKyAgICBbMV0ubWFwKGZ1bmN0aW9uKHgpIHsKKyAgICAgICAgdGhyb3cgImV4Y2VwdGlvbiBp
biBob3N0IGZ1bmN0aW9uIjsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gY2F0Y2hOZXN0ZWQoZnVu
YywgZGVwdGggLyogb3B0aW9uYWxBcmdzVG9GdW5jLi4uICovKQoreworICAgIGlmIChkZXB0aCA+
IDEpIHsKKyAgICAgICAgdmFyIGFyZ3MgPSBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1
bWVudHMsIDApOworICAgICAgICAtLWFyZ3NbMV07CisgICAgICAgIGNhdGNoTmVzdGVkLmFwcGx5
KHRoaXMsIGFyZ3MpOworICAgIH0gZWxzZSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBm
dW5jLmFwcGx5KHRoaXMsIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywgMikp
OworICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICBjb25zb2xlLmxvZygiY2F0Y2hO
ZXN0ZWQgY2F1Z2h0IGV4Y2VwdGlvbjogIiArIEpTT04uc3RyaW5naWZ5KGUpKTsKKyAgICAgICAg
fQorICAgIH0KK30KKworZnVuY3Rpb24gbm9FeGNlcHRpb24oKQoreworICAgIHJldHVybiAibm8g
ZXhjZXB0aW9uIjsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9yZXNvdXJjZXMvbWFjLWxpbmVicmVha3MuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvcmVzb3VyY2VzL21hYy1saW5lYnJlYWtzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2YjYwMmNmMWRl
MTFmMzIzMGY5MzBmODBlNjI0ZTQ1YzA1NmUxZWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL21hYy1saW5lYnJlYWtzLmpzCkBAIC0w
LDAgKzEgQEAKKy8vIHRlc3Qgb25lDS8vIA0vLyAgdGVzdCB0d28NDWZ1bmN0aW9uIGJvbygpDXsN
ICAgIC8vICAgdGVzdCB0aHJlZSB0ZXN0IGZvdXINfQ0NLy8gdGVzdCBubyBuZXdsaW5lClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3Jlc291cmNlcy9taXhlZC1saW5lYnJlYWtzLmpzIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9taXhlZC1saW5lYnJlYWtzLmpzCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmEyZDEwOWIxNmMxZTdjNzVhMDBhYjc5YzYyZDkxMTYxYzk5MTgyMjkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL21peGVkLWxpbmVi
cmVha3MuanMKQEAgLTAsMCArMSw5IEBACisvLyB0ZXN0IG9uZQorDQorLy8gdGVzdCB0d28NDQor
ZnVuY3Rpb24gYmF6KCkKK3sNCisgICAgLy8gICB0ZXN0IHRocmVlIHRlc3QgZm91cg0KK30KKw0K
Ky8vIHRlc3Qgbm8gbmV3bGluZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvc2NyaXB0LWZvci1i
cmVha3BvaW50LWFjdGlvbnMuanMgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVz
b3VyY2VzL3NjcmlwdC1mb3ItYnJlYWtwb2ludC1hY3Rpb25zLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwYTA2
YTgyOWM4YzFmY2I5ODdhM2JlYjNjZjc0MTIxZmIxNDlhMGYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL3NjcmlwdC1mb3ItYnJlYWtw
b2ludC1hY3Rpb25zLmpzCkBAIC0wLDAgKzEsNSBAQAorZnVuY3Rpb24gYnJlYWtwb2ludEFjdGlv
bnMoYSwgYikKK3sKKyAgICAvLyBPbmx5IHByZXNlcnZlIHRoaXMgbWVzc2FnZSBvbiB0aGUgY3Vy
cmVudCB0ZXN0IHBhZ2UgbG9hZC4KKyAgICBJbnNwZWN0b3JUZXN0UHJveHkuYWRkUmVzdWx0KCJp
bnNpZGUgYnJlYWtwb2ludEFjdGlvbnMgYTooIiArIGEgKyAiKSBiOigiICsgYiArICIpIik7Cit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL3Vu
aXgtbGluZWJyZWFrcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJj
ZXMvdW5peC1saW5lYnJlYWtzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkMWZjMWI0MTY5MzkyZmE0ODJiMGNm
NzBiMzVmODYzZjA0NWEwN2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvcmVzb3VyY2VzL3VuaXgtbGluZWJyZWFrcy5qcwpAQCAtMCwwICsxLDEwIEBA
CisvLyB0ZXN0IG9uZQorLy8gCisvLyAgdGVzdCB0d28KKworZnVuY3Rpb24gYmFyKCkKK3sKKyAg
ICAvLyB0ZXN0IHRocmVlIHRlc3QgZm91cgorfQorCisvLyB0ZXN0IG5vIG5ld2xpbmUKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvcmVzb3VyY2VzL3dpbmRvd3MtbGluZWJyZWFrcy5qcyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvd2luZG93cy1saW5lYnJlYWtzLmpzCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjk1MGQ2MTE1N2ZhMzlkN2E1MWY1Y2MzNTc1Yjc2MGZmNGI5M2IxYjcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL3dpbmRvd3Mt
bGluZWJyZWFrcy5qcwpAQCAtMCwwICsxLDEwIEBACisvLyB0ZXN0IG9uZQ0KKy8vIA0KKy8vICB0
ZXN0IHR3bw0KKw0KK2Z1bmN0aW9uIGZvbygpDQorew0KKyAgICAvLyB0ZXN0IHRocmVlIHRlc3Qg
Zm91cg0KK30NCisNCisvLyB0ZXN0IG5vIG5ld2xpbmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2VhcmNoSW5D
b250ZW50LWxpbmVicmVha3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3NlYXJjaEluQ29udGVudC1saW5lYnJlYWtzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kNzg5NjJhMDM1NWZlYzA1ZWQxYjM5MjI5M2ZjOTFhOTM1MGVkMTRiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NlYXJjaEluQ29udGVudC1saW5l
YnJlYWtzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMyIEBACitWZXJpZnkgdGhhdCBEZWJ1Z2dl
ci5zZWFyY2hJbkNvbnRlbnQgd29ya3Mgd2l0aCBzY3JpcHRzIHRoYXQgaGF2ZSB2YXJ5aW5nIGxp
bmUgZW5kaW5ncy4KK1NjcmlwdHMgc2VhcmNoZWQ6IDQKKworU2NyaXB0OiBtYWMtbGluZWJyZWFr
cy5qcworUmVzdWx0cyBmb3VuZDogNAorTGluZSAwOiAiLy8gdGVzdCBvbmVcciIKK0xpbmUgMjog
Ii8vICB0ZXN0IHR3b1xyIgorTGluZSA2OiAiICAgIC8vICAgdGVzdCB0aHJlZSB0ZXN0IGZvdXJc
ciIKK0xpbmUgOTogIi8vIHRlc3Qgbm8gbmV3bGluZSIKKworU2NyaXB0OiBtaXhlZC1saW5lYnJl
YWtzLmpzCitSZXN1bHRzIGZvdW5kOiA0CitMaW5lIDA6ICIvLyB0ZXN0IG9uZVxuIgorTGluZSAy
OiAiLy8gdGVzdCB0d29cciIKK0xpbmUgNjogIiAgICAvLyAgIHRlc3QgdGhyZWUgdGVzdCBmb3Vy
XHJcbiIKK0xpbmUgOTogIi8vIHRlc3Qgbm8gbmV3bGluZSIKKworU2NyaXB0OiB1bml4LWxpbmVi
cmVha3MuanMKK1Jlc3VsdHMgZm91bmQ6IDQKK0xpbmUgMDogIi8vIHRlc3Qgb25lXG4iCitMaW5l
IDI6ICIvLyAgdGVzdCB0d29cbiIKK0xpbmUgNjogIiAgICAvLyB0ZXN0IHRocmVlIHRlc3QgZm91
clxuIgorTGluZSA5OiAiLy8gdGVzdCBubyBuZXdsaW5lIgorCitTY3JpcHQ6IHdpbmRvd3MtbGlu
ZWJyZWFrcy5qcworUmVzdWx0cyBmb3VuZDogNAorTGluZSAwOiAiLy8gdGVzdCBvbmVcclxuIgor
TGluZSAyOiAiLy8gIHRlc3QgdHdvXHJcbiIKK0xpbmUgNjogIiAgICAvLyB0ZXN0IHRocmVlIHRl
c3QgZm91clxyXG4iCitMaW5lIDk6ICIvLyB0ZXN0IG5vIG5ld2xpbmUiCisKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NlYXJjaEluQ29udGVudC1saW5lYnJl
YWtzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2VhcmNoSW5Db250ZW50
LWxpbmVicmVha3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTk1ZGZjYzQ1OGM0MjZiZTc2YTgxODk0ZjE0
ZTgzZDAxYmFhMmViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3NlYXJjaEluQ29udGVudC1saW5lYnJlYWtzLmh0bWwKQEAgLTAsMCArMSw2NyBAQAor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL21peGVkLWxpbmVicmVha3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy91bml4LWxpbmVicmVha3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9t
YWMtbGluZWJyZWFrcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dpbmRv
d3MtbGluZWJyZWFrcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7
CisgICAgY29uc3QgZXhwZWN0ZWRTZWFyY2hDb3VudCA9IDQ7CisgICAgdmFyIGNvbXBsZXRlZFNl
YXJjaENvdW50ID0gMDsKKworICAgIHZhciB0ZXN0UmVzdWx0cyA9IFtdOworCisgICAgSW5zcGVj
dG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOworCisgICAgSW5zcGVj
dG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCJdID0gZnVuY3Rpb24o
bWVzc2FnZU9iamVjdCkKKyAgICB7CisgICAgICAgIGlmICgvLWxpbmVicmVha3NcLmpzJC8udGVz
dChtZXNzYWdlT2JqZWN0LnBhcmFtcy51cmwpKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5zZWFyY2hJbkNvbnRlbnQiLCB7InNjcmlwdElkIjogbWVz
c2FnZU9iamVjdC5wYXJhbXMuc2NyaXB0SWQsICJxdWVyeSI6ICJ0ZXN0In0sIGZ1bmN0aW9uKHVy
bCwgbWVzc2FnZU9iamVjdCkgeworICAgICAgICAgICAgICAgIHZhciByZXN1bHRzID0gbWVzc2Fn
ZU9iamVjdC5yZXN1bHQucmVzdWx0OworCisgICAgICAgICAgICAgICAgdmFyIHRlc3RSZXN1bHQg
PSB7dXJsOiB1cmwsIGNvdW50OiByZXN1bHRzLmxlbmd0aCwgbWF0Y2hlczogW119OworICAgICAg
ICAgICAgICAgIGZvciAodmFyIHJlc3VsdCBvZiByZXN1bHRzKQorICAgICAgICAgICAgICAgICAg
ICB0ZXN0UmVzdWx0Lm1hdGNoZXMucHVzaChyZXN1bHQpOworCisgICAgICAgICAgICAgICAgdGVz
dFJlc3VsdHMucHVzaCh0ZXN0UmVzdWx0KTsKKworICAgICAgICAgICAgICAgIGlmICgrK2NvbXBs
ZXRlZFNlYXJjaENvdW50ID49IGV4cGVjdGVkU2VhcmNoQ291bnQpCisgICAgICAgICAgICAgICAg
ICAgIG91dHB1dFJlc3VsdHMoKTsKKyAgICAgICAgICAgIH0uYmluZChudWxsLCBtZXNzYWdlT2Jq
ZWN0LnBhcmFtcy51cmwpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9uIG91dHB1
dFJlc3VsdHMoKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gY29tcGFyZVJlc3VsdFVSTHMoYSwg
YikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGEudXJsLmxvY2FsZUNvbXBhcmUoYi51
cmwpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIHNvcnRlZFRlc3RSZXN1bHRzID0gdGVzdFJl
c3VsdHMuc29ydChjb21wYXJlUmVzdWx0VVJMcyk7CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIlNjcmlwdHMgc2VhcmNoZWQ6ICIgKyBzb3J0ZWRUZXN0UmVzdWx0cy5sZW5ndGgpOworICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiIik7CisKKyAgICAgICAgZm9yICh2YXIgdGVzdFJlc3Vs
dCBvZiBzb3J0ZWRUZXN0UmVzdWx0cykgeworICAgICAgICAgICAgdmFyIGZpbGVOYW1lID0gLyhb
XHctXStcLmpzKSQvLmV4ZWModGVzdFJlc3VsdC51cmwpWzFdOworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIlNjcmlwdDogIiArIGZpbGVOYW1lKTsKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJSZXN1bHRzIGZvdW5kOiAiICsgdGVzdFJlc3VsdC5jb3VudCk7CisgICAgCisg
ICAgICAgICAgICBmb3IgKHZhciBtYXRjaCBvZiB0ZXN0UmVzdWx0Lm1hdGNoZXMpCisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkxpbmUgIiArIG1hdGNoLmxpbmVOdW1iZXIgKyAi
OiAiICsgSlNPTi5zdHJpbmdpZnkobWF0Y2gubGluZUNvbnRlbnQpKTsgICAgCisKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+CitWZXJpZnkgdGhhdCBEZWJ1Z2dlci5zZWFyY2hJbkNvbnRl
bnQgd29ya3Mgd2l0aCBzY3JpcHRzIHRoYXQgaGF2ZSB2YXJ5aW5nIGxpbmUgZW5kaW5ncy4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9zZXRCcmVha3BvaW50LWFjdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uY2Y0ZDJhYjIyYmUxMzQ1NWFjNzZhYzBlZDJmNGRkZWZmZWJkYTJmNgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWFjdGlv
bnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjcgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAx
OTogbG9nLWFjdGlvbi1iZWZvcmUKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBldmFsLWFjdGlv
bgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5OiBsb2ctYWN0aW9uLWFmdGVyCitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTk6IGxvZy1hY3Rpb24tYmVmb3JlCitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTogZXZhbC1hY3Rpb24KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOTogbG9nLWFjdGlvbi1hZnRl
cgorRGVidWdnZXIuc2V0QnJlYWtwb2ludCBvcHRpb25zLmFjdGlvbnMKKworRm91bmQgYnJlYWtw
b2ludC5qcworUnVubmluZyBicmVha3BvaW50QWN0aW9ucyBhIGZldyB0aW1lcyB0aGF0IHNob3Vs
ZCBub3QgdHJpZ2dlcgoraW5zaWRlIGJyZWFrcG9pbnRBY3Rpb25zIGE6KDEpIGI6KHVuZGVmaW5l
ZCkKK2luc2lkZSBicmVha3BvaW50QWN0aW9ucyBhOigyKSBiOigxMikKK2luc2lkZSBicmVha3Bv
aW50QWN0aW9ucyBhOigyKSBiOihbb2JqZWN0IE9iamVjdF0pCitSdW5uaW5nIGJyZWFrcG9pbnRB
Y3Rpb25zIHRvIHRyaWdnZXJpbmcgdGhlIGJyZWFrcG9pbnQgYWN0aW9ucworaW5zaWRlIGJyZWFr
cG9pbnRBY3Rpb25zIGE6KDEyKSBiOihbb2JqZWN0IE9iamVjdF0pCitQQVNTOiBDb25zb2xlIE1l
c3NhZ2U6IHsic291cmNlIjoiamF2YXNjcmlwdCIsImxldmVsIjoibG9nIiwidGV4dCI6ImxvZy1h
Y3Rpb24tYmVmb3JlIiwibG9jYXRpb24iOiJicmVha3BvaW50LmpzOjE5OjIifQorUEFTUzogQnJl
YWtwb2ludCBTb3VuZAorUEFTUzogQ29uc29sZSBNZXNzYWdlOiB7InNvdXJjZSI6ImNvbnNvbGUt
YXBpIiwibGV2ZWwiOiJsb2ciLCJ0ZXh0IjoiZXZhbC1hY3Rpb24iLCJsb2NhdGlvbiI6Ij8/Pzox
OjI2IiwicGFyYW1ldGVycyI6W3sidHlwZSI6InN0cmluZyJ9LHsidHlwZSI6Im51bWJlciJ9LHsi
dHlwZSI6Im9iamVjdCJ9XX0KK1BBU1M6IENvbnNvbGUgTWVzc2FnZTogeyJzb3VyY2UiOiJqYXZh
c2NyaXB0IiwibGV2ZWwiOiJsb2ciLCJ0ZXh0IjoibG9nLWFjdGlvbi1hZnRlciIsImxvY2F0aW9u
IjoiYnJlYWtwb2ludC5qczoxOToyIn0KK1BBU1M6IFByb2JlIHNhbXBsZSBwYXlsb2FkOiB7InR5
cGUiOiJudW1iZXIiLCJ2YWx1ZSI6MTIsImRlc2NyaXB0aW9uIjoiMTIifQoraW5zaWRlIGJyZWFr
cG9pbnRBY3Rpb25zIGE6KDEwMCkgYjooW29iamVjdCBIVE1MQm9keUVsZW1lbnRdKQorUEFTUzog
Q29uc29sZSBNZXNzYWdlOiB7InNvdXJjZSI6ImphdmFzY3JpcHQiLCJsZXZlbCI6ImxvZyIsInRl
eHQiOiJsb2ctYWN0aW9uLWJlZm9yZSIsImxvY2F0aW9uIjoiYnJlYWtwb2ludC5qczoxOToyIn0K
K1BBU1M6IEJyZWFrcG9pbnQgU291bmQKK1BBU1M6IENvbnNvbGUgTWVzc2FnZTogeyJzb3VyY2Ui
OiJjb25zb2xlLWFwaSIsImxldmVsIjoibG9nIiwidGV4dCI6ImV2YWwtYWN0aW9uIiwibG9jYXRp
b24iOiI/Pz86MToyNiIsInBhcmFtZXRlcnMiOlt7InR5cGUiOiJzdHJpbmcifSx7InR5cGUiOiJu
dW1iZXIifSx7InR5cGUiOiJvYmplY3QiLCJzdWJ0eXBlIjoibm9kZSJ9XX0KK1BBU1M6IENvbnNv
bGUgTWVzc2FnZTogeyJzb3VyY2UiOiJqYXZhc2NyaXB0IiwibGV2ZWwiOiJsb2ciLCJ0ZXh0Ijoi
bG9nLWFjdGlvbi1hZnRlciIsImxvY2F0aW9uIjoiYnJlYWtwb2ludC5qczoxOToyIn0KK1BBU1M6
IFByb2JlIHNhbXBsZSBwYXlsb2FkOiB7InR5cGUiOiJudW1iZXIiLCJ2YWx1ZSI6MTAwLCJkZXNj
cmlwdGlvbiI6IjEwMCJ9CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9zZXRCcmVha3BvaW50LWFjdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9zZXRCcmVha3BvaW50LWFjdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZmEyYzQzZTkx
M2UwZjdhMjM3YmZmYjFiY2UyMDU0MmM4MmFhMDQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy5odG1sCkBAIC0w
LDAgKzEsMTI4IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvYnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVu
Y3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5pbXBvcnRTY3JpcHQoImNvbnNvbGUt
dGVzdC5qcyIpOworICAgIEluc3BlY3RvclRlc3QuaW1wb3J0U2NyaXB0KCJwcm9iZS10ZXN0Lmpz
Iik7CisKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJDb25zb2xlLmVuYWJsZSIsIHt9
KTsKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7
CisKKyAgICB2YXIgaXNFeHBlY3RpbmdMb2dzID0gZmFsc2U7CisgICAgdmFyIGlzRXhwZWN0aW5n
U291bmRzID0gZmFsc2U7CisgICAgdmFyIGlzRXhwZWN0aW5nU2FtcGxlcyA9IGZhbHNlOworICAg
IHZhciBsb2dDb3VudCA9IDA7CisgICAgdmFyIHNvdW5kQ291bnQgPSAwOworICAgIHZhciBzYW1w
bGVDb3VudCA9IDA7CisgICAgY29uc3QgZXhwZWN0ZWRMb2dDb3VudCA9IDY7CisgICAgY29uc3Qg
ZXhwZWN0ZWRTb3VuZENvdW50ID0gMjsKKyAgICBjb25zdCBleHBlY3RlZFNhbXBsZUNvdW50ID0g
MjsKKworICAgIGZ1bmN0aW9uIHJlY2VpdmVkQWxsRXhwZWN0ZWRPdXRwdXQoKSB7CisgICAgICAg
IHJldHVybiBsb2dDb3VudCA9PT0gZXhwZWN0ZWRMb2dDb3VudCAmJiBzYW1wbGVDb3VudCA9PT0g
ZXhwZWN0ZWRTYW1wbGVDb3VudCAmJiBzb3VuZENvdW50ID09PSBleHBlY3RlZFNvdW5kQ291bnQ7
CisgICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlw
dFBhcnNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKKyAgICB7CisgICAgICAgIGlmICgv
cmVzb3VyY2VzXC9icmVha3BvaW50XC5qcyQvLnRlc3QobWVzc2FnZU9iamVjdC5wYXJhbXMudXJs
KSkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZvdW5kIGJyZWFrcG9pbnQuanMi
KTsKKyAgICAgICAgICAgIHZhciBzY3JpcHRJZGVudGlmaWVyID0gbWVzc2FnZU9iamVjdC5wYXJh
bXMuc2NyaXB0SWQ7CisgICAgICAgICAgICB2YXIgbG9jYXRpb24gPSB7c2NyaXB0SWQ6IHNjcmlw
dElkZW50aWZpZXIsIGxpbmVOdW1iZXI6IDE4LCBjb2x1bW5OdW1iZXI6IDB9OworICAgICAgICAg
ICAgdmFyIG9wdGlvbnMgPSB7CisgICAgICAgICAgICAgICAgY29uZGl0aW9uOiAiYSA+IDEwIiwK
KyAgICAgICAgICAgICAgICBhdXRvQ29udGludWU6IHRydWUsCisgICAgICAgICAgICAgICAgYWN0
aW9uczogWworICAgICAgICAgICAgICAgICAgICB7InR5cGUiOiAibG9nIiwgImRhdGEiOiAibG9n
LWFjdGlvbi1iZWZvcmUifSwKKyAgICAgICAgICAgICAgICAgICAgeyJ0eXBlIjogInNvdW5kIn0s
CisgICAgICAgICAgICAgICAgICAgIHsidHlwZSI6ICJldmFsdWF0ZSIsICJkYXRhIjogIihmdW5j
dGlvbigpIHsgY29uc29sZS5sb2coJ2V2YWwtYWN0aW9uJywgYSwgYik7IH0pKCkifSwKKyAgICAg
ICAgICAgICAgICAgICAgeyJ0eXBlIjogImxvZyIsICJkYXRhIjogImxvZy1hY3Rpb24tYWZ0ZXIi
fSwKKyAgICAgICAgICAgICAgICAgICAgeyJ0eXBlIjogInByb2JlIiwgImRhdGEiOiAiYSJ9Cisg
ICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfTsKKworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludCIsIHtsb2NhdGlvbjogbG9j
YXRpb24sIG9wdGlvbnM6IG9wdGlvbnN9LCBmdW5jdGlvbihyZXNwb25zZU9iamVjdCkgeworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7
CisgICAgICAgICAgICAgICAgYnJlYWtwb2ludElkZW50aWZpZXIgPSByZXNwb25zZU9iamVjdC5y
ZXN1bHQuYnJlYWtwb2ludElkOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJS
dW5uaW5nIGJyZWFrcG9pbnRBY3Rpb25zIGEgZmV3IHRpbWVzIHRoYXQgc2hvdWxkIG5vdCB0cmln
Z2VyIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGlt
ZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAiYnJlYWtwb2ludEFjdGlvbnMoMSkifSk7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIs
IHtleHByZXNzaW9uOiAiYnJlYWtwb2ludEFjdGlvbnMoMiwgMTIpIn0pOworICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVz
c2lvbjogImJyZWFrcG9pbnRBY3Rpb25zKDIsIHt4OjEseToyfSkifSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGlzRXhwZWN0aW5nTG9ncyA9IHRydWU7CisgICAgICAgICAgICAg
ICAgICAgIGlzRXhwZWN0aW5nU291bmRzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgaXNF
eHBlY3RpbmdTYW1wbGVzID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIlJ1bm5pbmcgYnJlYWtwb2ludEFjdGlvbnMgdG8gdHJpZ2dlcmluZyB0aGUgYnJlYWtw
b2ludCBhY3Rpb25zIik7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENv
bW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogImJyZWFrcG9pbnRBY3Rpb25z
KDEyLCB7eDoxLHk6Mn0pIn0sIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9u
OiAiYnJlYWtwb2ludEFjdGlvbnMoMTAwLCBkb2N1bWVudC5ib2R5KSJ9KTsKKyAgICAgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5w
YXVzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgeworICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiSGl0IEJyZWFrcG9pbnQhIik7CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkZBSUw6IHNob3VsZCBub3QgaGF2ZSBoaXQgYnJlYWtwb2ludCwgYXV0b0NvbnRpbnVlIHdh
cyB0cnVlIik7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQor
CisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnBsYXlCcmVha3BvaW50
QWN0aW9uU291bmQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgeworICAgICAgICBp
ZiAoIWlzRXhwZWN0aW5nU291bmRzKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
RkFJTDogdW5leHBlY3RlZCBicmVha3BvaW50IHNvdW5kLiIpOworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiBCcmVha3BvaW50IFNvdW5kIik7CisK
KyAgICAgICAgKytzb3VuZENvdW50OworCisgICAgICAgIGlmIChyZWNlaXZlZEFsbEV4cGVjdGVk
T3V0cHV0KCkpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAg
IH0KKworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5kaWRTYW1wbGVQ
cm9iZSJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKKyAgICB7CisgICAgICAgIGlmICghaXNF
eHBlY3RpbmdTYW1wbGVzKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDog
dW5leHBlY3RlZCBwcm9iZSBzYW1wbGUsIHByb2JlIHNhbXBsZXMgc2hvdWxkIG9ubHkgaGF2ZSBj
b21lIGZyb20gYnJlYWtwb2ludCBhY3Rpb25zLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIHZhciBzaW1wbGlmaWVkU2FtcGxlID0gUHJvYmVIZWxwZXIuc2ltcGxpZmllZFByb2JlU2Ft
cGxlKG1lc3NhZ2VPYmplY3QpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogUHJv
YmUgc2FtcGxlIHBheWxvYWQ6ICIgKyBKU09OLnN0cmluZ2lmeShzaW1wbGlmaWVkU2FtcGxlLnBh
eWxvYWQpKTsKKworICAgICAgICArK3NhbXBsZUNvdW50OworCisgICAgICAgIGlmIChyZWNlaXZl
ZEFsbEV4cGVjdGVkT3V0cHV0KCkpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRl
VGVzdCgpOworICAgIH0KKworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJDb25zb2xl
Lm1lc3NhZ2VBZGRlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKKyAgICB7CisgICAgICAg
IGlmICghaXNFeHBlY3RpbmdMb2dzKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
RkFJTDogdW5leHBlY3RlZCBsb2csIGxvZ3Mgc2hvdWxkIG9ubHkgaGF2ZSBjb21lIGZyb20gYnJl
YWtwb2ludCBhY3Rpb25zLiIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRl
c3QoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBtZXNz
YWdlID0gSW5zcGVjdG9yVGVzdC5Db25zb2xlLnNhbml0aXplQ29uc29sZU1lc3NhZ2UobWVzc2Fn
ZU9iamVjdCk7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiBDb25zb2xlIE1lc3Nh
Z2U6ICIgKyBKU09OLnN0cmluZ2lmeShtZXNzYWdlKSk7CisKKyAgICAgICAgKytsb2dDb3VudDsK
KworICAgICAgICBpZiAocmVjZWl2ZWRBbGxFeHBlY3RlZE91dHB1dCgpKQorICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPkRlYnVnZ2VyLnNldEJyZWFrcG9pbnQg
b3B0aW9ucy5hY3Rpb25zPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRpbnVlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWF1
dG9Db250aW51ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmM2YTRkNWZlYzUxMTU0ZDdjOTNk
YWI2OTViNTgxNjYyNDhiNWU3ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWF1dG9Db250aW51ZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMyBAQAorRGVidWdnZXIuc2V0QnJlYWtwb2ludCBvcHRpb25zLmF1dG9Db250aW51
ZQorCitGb3VuZCBicmVha3BvaW50LmpzCitSdW5uaW5nIGJyZWFrcG9pbnRBdXRvbWF0aWNhbGx5
Q29udGludWUgbXVsdGlwbGUgdGltZXMgd2l0aCBhdXRvbWF0aWNhbGx5IGNvbnRpbnVlCitpbnNp
ZGUgYnJlYWtwb2ludEF1dG9tYXRpY2FsbHlDb250aW51ZQoraW5zaWRlIGJyZWFrcG9pbnRBdXRv
bWF0aWNhbGx5Q29udGludWUKK2luc2lkZSBicmVha3BvaW50QXV0b21hdGljYWxseUNvbnRpbnVl
CitSZW1vdmluZyBicmVha3BvaW50CitTZXR0aW5nIG5ldyBicmVha3BvaW50IHdpdGhvdXQgYXV0
b0NvbnRpbnVlIHRoYXQgc2hvdWxkIHRyaWdnZXIKK2luc2lkZSBicmVha3BvaW50QXV0b21hdGlj
YWxseUNvbnRpbnVlCitIaXQgQnJlYWtwb2ludCEKK1BBU1M6IGhpdCBicmVha3BvaW50IHdoZW4g
YWxsb3dlZC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnQtYXV0b0NvbnRpbnVlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvc2V0QnJlYWtwb2ludC1hdXRvQ29udGludWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGY5YzVj
NzdhYTg5ODM3MGEzNzRkOTM1N2FiYTcxN2U3YmViMzdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYXV0b0NvbnRpbnVlLmh0
bWwKQEAgLTAsMCArMSw2MSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2JyZWFrcG9pbnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRl
YnVnZ2VyLmVuYWJsZSIsIHt9KTsKKworICAgIHZhciBhbGxvd2VkVG9IaXRCcmVha3BvaW50ID0g
ZmFsc2U7CisgICAgdmFyIGJyZWFrcG9pbnRJZGVudGlmaWVyID0gbnVsbDsKKworICAgIEluc3Bl
Y3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQiXSA9IGZ1bmN0aW9u
KG1lc3NhZ2VPYmplY3QpCisgICAgeworICAgICAgICBpZiAoL3Jlc291cmNlc1wvYnJlYWtwb2lu
dFwuanMkLy50ZXN0KG1lc3NhZ2VPYmplY3QucGFyYW1zLnVybCkpIHsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJGb3VuZCBicmVha3BvaW50LmpzIik7CisgICAgICAgICAgICB2YXIg
c2NyaXB0SWRlbnRpZmllciA9IG1lc3NhZ2VPYmplY3QucGFyYW1zLnNjcmlwdElkOworICAgICAg
ICAgICAgdmFyIGxvY2F0aW9uID0ge3NjcmlwdElkOiBzY3JpcHRJZGVudGlmaWVyLCBsaW5lTnVt
YmVyOiAxMywgY29sdW1uTnVtYmVyOiAwfTsKKyAgICAgICAgICAgIHZhciBvcHRpb25zID0ge2F1
dG9Db250aW51ZTogdHJ1ZX07CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50Iiwge2xvY2F0aW9uOiBsb2NhdGlvbiwgb3B0aW9uczog
b3B0aW9uc30sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7CisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKHJlc3BvbnNlT2JqZWN0KTsKKyAgICAgICAgICAgICAg
ICBicmVha3BvaW50SWRlbnRpZmllciA9IHJlc3BvbnNlT2JqZWN0LnJlc3VsdC5icmVha3BvaW50
SWQ7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlJ1bm5pbmcgYnJlYWtwb2lu
dEF1dG9tYXRpY2FsbHlDb250aW51ZSBtdWx0aXBsZSB0aW1lcyB3aXRoIGF1dG9tYXRpY2FsbHkg
Y29udGludWUiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJS
dW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJicmVha3BvaW50QXV0b21hdGljYWxseUNv
bnRpbnVlKCkifSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
UnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAiYnJlYWtwb2ludEF1dG9tYXRpY2FsbHlD
b250aW51ZSgpIn0pOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogImJyZWFrcG9pbnRBdXRvbWF0aWNhbGx5
Q29udGludWUoKSJ9LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIlJlbW92aW5nIGJyZWFrcG9pbnQiKTsKKyAgICAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIucmVtb3ZlQnJlYWtwb2ludCIsIHsiYnJl
YWtwb2ludElkIjogYnJlYWtwb2ludElkZW50aWZpZXJ9LCBmdW5jdGlvbihyZXNwb25zZU9iamVj
dCkgeworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9y
KHJlc3BvbnNlT2JqZWN0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWRUb0hpdEJy
ZWFrcG9pbnQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyA9IHthdXRv
Q29udGludWU6IGZhbHNlfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJTZXR0aW5nIG5ldyBicmVha3BvaW50IHdpdGhvdXQgYXV0b0NvbnRpbnVlIHRoYXQgc2hv
dWxkIHRyaWdnZXIiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2Vu
ZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnQiLCB7bG9jYXRpb246IGxvY2F0aW9uLCBv
cHRpb25zOiBvcHRpb25zfSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVzcG9uc2VPYmpl
Y3QpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogImJyZWFrcG9pbnRBdXRvbWF0aWNh
bGx5Q29udGludWUoKSJ9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9CisgICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2Vy
LnBhdXNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKKyAgICB7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJIaXQgQnJlYWtwb2ludCEiKTsKKworICAgICAgICBpZiAoIWFsbG93ZWRU
b0hpdEJyZWFrcG9pbnQpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiBz
aG91bGQgbm90IGhhdmUgaGl0IGJyZWFrcG9pbnQuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIlBBU1M6IGhpdCBicmVha3BvaW50IHdoZW4gYWxsb3dlZC4iKTsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgIH0KKyAgICB9Cit9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPkRlYnVn
Z2VyLnNldEJyZWFrcG9pbnQgb3B0aW9ucy5hdXRvQ29udGludWU8L3A+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtw
b2ludC1jb2x1bW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnQtY29sdW1uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ODU0NTRkZmE0
NGE1YjFkMWI2OTJiNjU2Yjg0MzUxZWUwN2U2YTVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29sdW1uLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDggQEAKK0RlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb24gbGluZTpjb2x1bW4g
aW4gPHNjcmlwdD4KKworRm91bmQgPHNjcmlwdD4KK1J1bm5pbmcgdGVzdEZ1bmN0aW9uCitIaXQg
QnJlYWtwb2ludCEKK0V2YWx1dGVkIHZhbHVlIG9mIGBhYCAoZXhwZWN0aW5nIG51bWJlciAxKSB3
YXM6IHsidHlwZSI6Im51bWJlciIsInZhbHVlIjoxLCJkZXNjcmlwdGlvbiI6IjEifQorRXZhbHV0
ZWQgdmFsdWUgb2YgYGJgIChleHBlY3RpbmcgdW5kZWZpbmVkKSB3YXM6IHsidHlwZSI6InVuZGVm
aW5lZCJ9CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRC
cmVha3BvaW50LWNvbHVtbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Nl
dEJyZWFrcG9pbnQtY29sdW1uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQ4MzkzMDViODUyOWMzNmRjOGE4
Y2FkYjU3OWY0MmMwZjQ2M2Q5OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi5odG1sCkBAIC0wLDAgKzEsNTQgQEAK
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
cmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKy8vIFB1dCB0
aGlzIGhlcmUgaW5zdGVhZCBvZiBvbiA8Ym9keSBvbmxvYWQ+IHRvIHByZXZlbnQgYW4gZXh0cmEg
RGVidWdnZXIuc2NyaXB0UGFyc2VkIGV2ZW50Lgord2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisK
K2Z1bmN0aW9uIHRlc3QoKQoreworICAgIC8vIFRoaXMgdGVzdCBzZXR0aW5nIGEgYnJlYWtwb2lu
dCBvbiBsaW5lOmNvbHVtbiBpbiB0aGUgPHNjcmlwdD4gYmVsb3cuCisgICAgLy8gV2Ugc2V0IGEg
YnJlYWtwb2ludCBiZWZvcmUgZXZhbHVhdGluZyBgdmFyIGIgPSAuLi5gLCBhbmQgdmVyaWZ5IHRo
YXQKKyAgICAvLyBieSBydW5uaW5nIHNvbWUgZXhwcmVzc2lvbnMgYXQgdGhhdCBjYWxsIGZyYW1l
LgorCisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30p
OworCisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnNjcmlwdFBhcnNl
ZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKKyAgICB7CisgICAgICAgIGlmICgvc2V0QnJl
YWtwb2ludC1jb2x1bW5cLmh0bWwkLy50ZXN0KG1lc3NhZ2VPYmplY3QucGFyYW1zLnVybCkgJiYg
bWVzc2FnZU9iamVjdC5wYXJhbXMuc3RhcnRMaW5lID4gMTApIHsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJGb3VuZCA8c2NyaXB0PiIpOworICAgICAgICAgICAgdmFyIHNjcmlwdElk
ZW50aWZpZXIgPSBtZXNzYWdlT2JqZWN0LnBhcmFtcy5zY3JpcHRJZDsKKyAgICAgICAgICAgIHZh
ciBsaW5lTnVtYmVyID0gbWVzc2FnZU9iamVjdC5wYXJhbXMuc3RhcnRMaW5lICsgMjsKKyAgICAg
ICAgICAgIHZhciBjb2x1bW5OdW1iZXIgPSAxMDsKKyAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9
IHtzY3JpcHRJZDogc2NyaXB0SWRlbnRpZmllciwgbGluZU51bWJlcjogbGluZU51bWJlciwgY29s
dW1uTnVtYmVyOiBjb2x1bW5OdW1iZXJ9OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludCIsIHtsb2NhdGlvbjogbG9jYXRpb259LCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUnVubmluZyB0
ZXN0RnVuY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJ0ZXN0RnVuY3Rpb24oKSJ9KTsKKyAg
ICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5ldmVu
dEhhbmRsZXJbIkRlYnVnZ2VyLnBhdXNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKKyAg
ICB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJIaXQgQnJlYWtwb2ludCEiKTsKKyAgICAg
ICAgdmFyIGNhbGxGcmFtZUlkZW50aWZpZXIgPSBtZXNzYWdlT2JqZWN0LnBhcmFtcy5jYWxsRnJh
bWVzWzBdLmNhbGxGcmFtZUlkOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJE
ZWJ1Z2dlci5ldmFsdWF0ZU9uQ2FsbEZyYW1lIiwge2NhbGxGcmFtZUlkOiBjYWxsRnJhbWVJZGVu
dGlmaWVyLCBleHByZXNzaW9uOiAiYSJ9LCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRXZhbHV0ZWQgdmFsdWUgb2YgYGFgIChleHBlY3Rp
bmcgbnVtYmVyIDEpIHdhczogIiArIEpTT04uc3RyaW5naWZ5KG1lc3NhZ2VPYmplY3QucmVzdWx0
LnJlc3VsdCkpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdn
ZXIuZXZhbHVhdGVPbkNhbGxGcmFtZSIsIHtjYWxsRnJhbWVJZDogY2FsbEZyYW1lSWRlbnRpZmll
ciwgZXhwcmVzc2lvbjogImIifSwgZnVuY3Rpb24obWVzc2FnZU9iamVjdCkgeworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFdmFsdXRlZCB2YWx1ZSBvZiBgYmAgKGV4cGVjdGlu
ZyB1bmRlZmluZWQpIHdhczogIiArIEpTT04uc3RyaW5naWZ5KG1lc3NhZ2VPYmplY3QucmVzdWx0
LnJlc3VsdCkpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7
CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPkRlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb24gbGluZTpjb2x1bW4gaW4g
Jmx0O3NjcmlwdCZndDs8L3A+Cis8c2NyaXB0Pi8vIExpbmUgMAorZnVuY3Rpb24gdGVzdEZ1bmN0
aW9uKCkgey8vIExpbmUgMQordmFyIGEgPSAxO3ZhciBiID0gYSArIDE7Ly8gTGluZSAyCit9Ly8g
TGluZSAzCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbHVtbi50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb2x1bW4udHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJkNzYwYjU1NzBiMDkwYTAwNGEzMjMwM2M0YjExYzZkYWFhZjhlY2UKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb2x1
bW4udHh0CkBAIC0wLDAgKzEsNyBAQAorQnJlYWtwb2ludHMgRW5hYmxlZAorRm91bmQgPHNjcmlw
dD4KK1J1bm5pbmcgdGVzdEZ1bmN0aW9uCitIaXQgQnJlYWtwb2ludCEKK0V2YWx1dGVkIHZhbHVl
IG9mIGBhYCAoZXhwZWN0aW5nIG51bWJlciAxKSB3YXM6IHsidHlwZSI6Im51bWJlciIsInZhbHVl
IjoxLCJkZXNjcmlwdGlvbiI6IjEifQorRXZhbHV0ZWQgdmFsdWUgb2YgYGJgIChleHBlY3Rpbmcg
dW5kZWZpbmVkKSB3YXM6IHsidHlwZSI6InVuZGVmaW5lZCJ9CisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWNvbmRpdGlvbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25k
aXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1MmU2YjkwZWRiY2I3NjBkYjI4YjdmZWM0
MTNiY2M3OTJkZDMyZjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTkgQEAKK0RlYnVnZ2VyLnNldEJyZWFrcG9pbnQgb3B0aW9ucy5jb25kaXRpb24KKworRm91bmQg
YnJlYWtwb2ludC5qcworUnVubmluZyBicmVha3BvaW50V2l0aENvbmRpdGlvbiBtdWx0aXBsZSB0
aW1lcworaW5zaWRlIGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uIGE6KDEpIGI6KDIpIGErYjooMykK
K2luc2lkZSBicmVha3BvaW50V2l0aENvbmRpdGlvbiBhOig1KSBiOig1KSBhK2I6KDEwKQoraW5z
aWRlIGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uIGE6KDcpIGI6KDQpIGErYjooMTEpCitIaXQgQnJl
YWtwb2ludCEKK0V2YWx1dGVkIHZhbHVlIG9mIGBhYCAoZXhwZWN0aW5nIG51bWJlciA3KSB3YXM6
IHsidHlwZSI6Im51bWJlciIsInZhbHVlIjo3LCJkZXNjcmlwdGlvbiI6IjcifQorRXZhbHV0ZWQg
dmFsdWUgb2YgYGJgIChleHBlY3RpbmcgbnVtYmVyIDQpIHdhczogeyJ0eXBlIjoibnVtYmVyIiwi
dmFsdWUiOjQsImRlc2NyaXB0aW9uIjoiNCJ9CitSZXN1bWVkLCBydW5uaW5nIGJyZWFrcG9pbnRX
aXRoQ29uZGl0aW9uIG11bHRpcGxlIHRpbWVzIGFnYWluCitpbnNpZGUgYnJlYWtwb2ludFdpdGhD
b25kaXRpb24gYTooOSkgYjooMCkgYStiOig5KQoraW5zaWRlIGJyZWFrcG9pbnRXaXRoQ29uZGl0
aW9uIGE6KDEyKSBiOigtNCkgYStiOig4KQoraW5zaWRlIGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9u
IGE6KDQpIGI6KDcpIGErYjooMTEpCitIaXQgQnJlYWtwb2ludCEKK0V2YWx1dGVkIHZhbHVlIG9m
IGBhYCAoZXhwZWN0aW5nIG51bWJlciA0KSB3YXM6IHsidHlwZSI6Im51bWJlciIsInZhbHVlIjo0
LCJkZXNjcmlwdGlvbiI6IjQifQorRXZhbHV0ZWQgdmFsdWUgb2YgYGJgIChleHBlY3RpbmcgbnVt
YmVyIDcpIHdhczogeyJ0eXBlIjoibnVtYmVyIiwidmFsdWUiOjcsImRlc2NyaXB0aW9uIjoiNyJ9
CitQQVNTOiBoaXQgYnJlYWtwb2ludHMgd2l0aCBleHBlY3RlZCB2YWx1ZXMKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29uZGl0aW9u
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25k
aXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ODJiNjUwZWZlNGZlMWNkMjU0OGQyZWNlZWM0ZDI5NjRk
NmU0ZGEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnQtY29uZGl0aW9uLmh0bWwKQEAgLTAsMCArMSw4MiBAQAorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMv
cHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2JyZWFr
cG9pbnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKKworICAgIHZh
ciBpbkJyZWFrcG9pbnQgPSBmYWxzZTsKKyAgICB2YXIgYnJlYWtwb2ludFRyaWdnZXJlZCA9IDA7
CisKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2Vk
Il0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQorICAgIHsKKyAgICAgICAgaWYgKC9yZXNvdXJj
ZXNcL2JyZWFrcG9pbnRcLmpzJC8udGVzdChtZXNzYWdlT2JqZWN0LnBhcmFtcy51cmwpKSB7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRm91bmQgYnJlYWtwb2ludC5qcyIpOworICAg
ICAgICAgICAgdmFyIHNjcmlwdElkZW50aWZpZXIgPSBtZXNzYWdlT2JqZWN0LnBhcmFtcy5zY3Jp
cHRJZDsKKyAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9IHtzY3JpcHRJZDogc2NyaXB0SWRlbnRp
ZmllciwgbGluZU51bWJlcjogOCwgY29sdW1uTnVtYmVyOiAwfTsKKyAgICAgICAgICAgIHZhciBv
cHRpb25zID0ge2NvbmRpdGlvbjogIihhICsgYikgPiAxMCJ9OworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludCIsIHtsb2NhdGlvbjog
bG9jYXRpb24sIG9wdGlvbnM6IG9wdGlvbnN9LCBmdW5jdGlvbihyZXNwb25zZU9iamVjdCkgewor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVj
dCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlJ1bm5pbmcgYnJlYWtwb2lu
dFdpdGhDb25kaXRpb24gbXVsdGlwbGUgdGltZXMiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJicmVh
a3BvaW50V2l0aENvbmRpdGlvbigxLCAyKSJ9KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJicmVha3Bv
aW50V2l0aENvbmRpdGlvbig1LCA1KSJ9KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJicmVha3BvaW50
V2l0aENvbmRpdGlvbig3LCA0KSJ9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAg
fQorCisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnBhdXNlZCJdID0g
ZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJIaXQgQnJlYWtwb2ludCEiKTsKKyAgICAgICAgaW5CcmVha3BvaW50ID0gdHJ1ZTsKKyAgICAg
ICAgKyticmVha3BvaW50VHJpZ2dlcmVkOworCisgICAgICAgIHZhciBjYWxsRnJhbWVJZGVudGlm
aWVyID0gbWVzc2FnZU9iamVjdC5wYXJhbXMuY2FsbEZyYW1lc1swXS5jYWxsRnJhbWVJZDsKKyAg
ICAgICAgaWYgKGJyZWFrcG9pbnRUcmlnZ2VyZWQgPT09IDEpIHsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmV2YWx1YXRlT25DYWxsRnJhbWUiLCB7Y2Fs
bEZyYW1lSWQ6IGNhbGxGcmFtZUlkZW50aWZpZXIsIGV4cHJlc3Npb246ICJhIn0sIGZ1bmN0aW9u
KG1lc3NhZ2VPYmplY3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRXZh
bHV0ZWQgdmFsdWUgb2YgYGFgIChleHBlY3RpbmcgbnVtYmVyIDcpIHdhczogIiArIEpTT04uc3Ry
aW5naWZ5KG1lc3NhZ2VPYmplY3QucmVzdWx0LnJlc3VsdCkpOworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmV2YWx1YXRlT25DYWxsRnJhbWUiLCB7
Y2FsbEZyYW1lSWQ6IGNhbGxGcmFtZUlkZW50aWZpZXIsIGV4cHJlc3Npb246ICJiIn0sIGZ1bmN0
aW9uKG1lc3NhZ2VPYmplY3QpIHsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkV2YWx1dGVkIHZhbHVlIG9mIGBiYCAoZXhwZWN0aW5nIG51bWJlciA0KSB3YXM6ICIgKyBK
U09OLnN0cmluZ2lmeShtZXNzYWdlT2JqZWN0LnJlc3VsdC5yZXN1bHQpKTsKKyAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIucmVzdW1lIiwge30p
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0gZWxzZSBp
ZiAoYnJlYWtwb2ludFRyaWdnZXJlZCA9PT0gMikgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZXZhbHVhdGVPbkNhbGxGcmFtZSIsIHtjYWxsRnJhbWVJ
ZDogY2FsbEZyYW1lSWRlbnRpZmllciwgZXhwcmVzc2lvbjogImEifSwgZnVuY3Rpb24obWVzc2Fn
ZU9iamVjdCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFdmFsdXRlZCB2
YWx1ZSBvZiBgYWAgKGV4cGVjdGluZyBudW1iZXIgNCkgd2FzOiAiICsgSlNPTi5zdHJpbmdpZnko
bWVzc2FnZU9iamVjdC5yZXN1bHQucmVzdWx0KSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZXZhbHVhdGVPbkNhbGxGcmFtZSIsIHtjYWxsRnJh
bWVJZDogY2FsbEZyYW1lSWRlbnRpZmllciwgZXhwcmVzc2lvbjogImIifSwgZnVuY3Rpb24obWVz
c2FnZU9iamVjdCkgeworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRXZh
bHV0ZWQgdmFsdWUgb2YgYGJgIChleHBlY3RpbmcgbnVtYmVyIDcpIHdhczogIiArIEpTT04uc3Ry
aW5naWZ5KG1lc3NhZ2VPYmplY3QucmVzdWx0LnJlc3VsdCkpOworICAgICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogaGl0IGJyZWFrcG9pbnRzIHdpdGggZXhwZWN0ZWQg
dmFsdWVzIik7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0
KCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiBoaXQgdG9vIG1hbnkgYnJl
YWtwb2ludHMuIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwor
ICAgICAgICB9CisgICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVn
Z2VyLnJlc3VtZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgeworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygiUmVzdW1lZCwgcnVubmluZyBicmVha3BvaW50V2l0aENvbmRpdGlv
biBtdWx0aXBsZSB0aW1lcyBhZ2FpbiIpOworICAgICAgICBpbkJyZWFrcG9pbnQgPSBmYWxzZTsK
KworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwg
e2V4cHJlc3Npb246ICJicmVha3BvaW50V2l0aENvbmRpdGlvbig5LCAwKSJ9KTsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9u
OiAiYnJlYWtwb2ludFdpdGhDb25kaXRpb24oMTIsIC00KSJ9KTsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAiYnJlYWtw
b2ludFdpdGhDb25kaXRpb24oNCwgNykifSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGlmICghaW5CcmVha3BvaW50KSB7
CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiBEaWQgbm90IGhp
dCBjb25kaXRpb25hbCBicmVha3BvaW50IHRoZSBzZWNvbmQgdGltZSIpOworICAgICAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0sIDEwMCk7CisgICAgICAgIH0pOworICAgIH0KK30KKzwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+RGVidWdnZXIuc2V0QnJlYWtw
b2ludCBvcHRpb25zLmNvbmRpdGlvbjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWRmZy1hbmQtbW9k
aWZ5LWxvY2FsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9z
ZXRCcmVha3BvaW50LWRmZy1hbmQtbW9kaWZ5LWxvY2FsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kOTc3MjU4M2Q4YzliNjBiYTg0MmFlODhmYTJhNzIwYTlkMzdlOTY3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZGZnLWFu
ZC1tb2RpZnktbG9jYWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK0RlYnVnZ2VyLmV2
YWx1YXRlT25DYWxsRnJhbWUgaW4gYSBERkcgY29tcGlsZWQgZnVuY3Rpb25zLgorCitGb3VuZCBi
cmVha3BvaW50LmpzCityZXN1bHQ6IDUwMjUwMAorZGZnIGZ1bmN0aW9uIHdhcm1lZCB1cAorCitC
cmVha3BvaW50IHNldCBpbiBicmVha3BvaW50QmFzaWMoKQorSGl0IEJyZWFrcG9pbnQhCitFdmFs
dWF0aW5nIGluIERGRyBmcmFtZSBhdCBmcmFtZVsxXTogJ3ggPSAyMDAwMDsnCitSZXN1bWVkIGZy
b20gYnJlYWtwb2ludAoraW5zaWRlIGJyZWFrcG9pbnRCYXNpYworUEFTUzogcmVzdWx0IGlzIDIw
MDAzCitUZXN0IGNvbXBsZXRlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9zZXRCcmVha3BvaW50LWRmZy1hbmQtbW9kaWZ5LWxvY2FsLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1kZmctYW5kLW1vZGlmeS1sb2Nh
bC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjYyODUyODVhOGY3YzFiOWFkNDMyNzM1NGJmNzhhYWYzMWM3ZjJm
YzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0
QnJlYWtwb2ludC1kZmctYW5kLW1vZGlmeS1sb2NhbC5odG1sCkBAIC0wLDAgKzEsNzIgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVz
b3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNl
cy9icmVha3BvaW50LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKy8vIFB1dCB0aGlzIGhlcmUg
aW5zdGVhZCBvZiBvbiA8Ym9keSBvbmxvYWQ+IHRvIHByZXZlbnQgYW4gZXh0cmEgRGVidWdnZXIu
c2NyaXB0UGFyc2VkIGV2ZW50Lgord2luZG93Lm9ubG9hZCA9IHJ1blRlc3Q7CisKK2Z1bmN0aW9u
IHRlc3QoKQoreworICAgIC8vIFRoaXMgdGVzdCBzZXR0aW5nIDIgYnJlYWtwb2ludHMgaW4gREZH
IGNvbXBpbGVkIGZ1bmN0aW9uczogb25lIGlubGluZWQsCisgICAgLy8gYW5kIG9uZSBub3QgaW5s
aW5lZC4KKworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJsZSIs
IHt9KTsKKworICAgIHZhciBicmVha3BvaW50SWQgPSBudWxsOworICAgIHZhciBzY3JpcHRJZCA9
IDA7CisgICAgdmFyIHN0YXJ0TGluZSA9IDA7CisKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFu
ZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQor
ICAgIHsKKyAgICAgICAgaWYgKC9yZXNvdXJjZXNcL2JyZWFrcG9pbnRcLmpzJC8udGVzdChtZXNz
YWdlT2JqZWN0LnBhcmFtcy51cmwpKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
Rm91bmQgYnJlYWtwb2ludC5qcyIpOworICAgICAgICAgICAgc2NyaXB0SWQgPSBtZXNzYWdlT2Jq
ZWN0LnBhcmFtcy5zY3JpcHRJZDsKKyAgICAgICAgICAgIHN0YXJ0TGluZSA9IG1lc3NhZ2VPYmpl
Y3QucGFyYW1zLnN0YXJ0TGluZTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHsKKyAgICAgICAgICAgICAgICBleHByZXNzaW9uOiAi
ZGZnV2l0aG91dElubGluZTIoKTsiCisgICAgICAgICAgICB9LCBmdW5jdGlvbihyZXNwb25zZU9i
amVjdCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJkZmcgZnVuY3Rpb24g
d2FybWVkIHVwXG4iKTsKKworICAgICAgICAgICAgICAgIHZhciBsb2NhdGlvbjEgPSB7c2NyaXB0
SWQ6IHNjcmlwdElkLCBsaW5lTnVtYmVyOiAyLCBjb2x1bW5OdW1iZXI6IDB9OworCisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2lu
dCIsIHtsb2NhdGlvbjogbG9jYXRpb24xfSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKKyAg
ICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKHJlc3BvbnNlT2Jq
ZWN0KTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkJyZWFrcG9pbnQg
c2V0IGluIGJyZWFrcG9pbnRCYXNpYygpIik7CisKKyAgICAgICAgICAgICAgICAgICAgYnJlYWtw
b2ludElkID0gcmVzcG9uc2VPYmplY3QucmVzdWx0LmJyZWFrcG9pbnRJZDsKKyAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb246ICJjYWxsTm90SW5saW5lYWJsZTIo
KTsiCisgICAgICAgICAgICAgICAgICAgIH0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiVGVzdCBjb21wbGV0ZSIp
OworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsK
KyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVy
WyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgeworICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiSGl0IEJyZWFrcG9pbnQhIik7CisgICAgICAgIHZhciBj
YWxsRnJhbWVzID0gbWVzc2FnZU9iamVjdC5wYXJhbXMuY2FsbEZyYW1lczsKKyAgICAgICAgaWYg
KGNhbGxGcmFtZXMubGVuZ3RoIDwgMykKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJG
QUlMOiB0b28gZmV3IGZyYW1lcyBpbiBzdGFjayB0cmFjZSIpOworCisgICAgICAgIHZhciBjYWxs
RnJhbWVJZCA9IGNhbGxGcmFtZXNbMV0uY2FsbEZyYW1lSWQ7CisgICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCJFdmFsdWF0aW5nIGluIERGRyBmcmFtZSBhdCBmcmFtZVsxXTogJ3ggPSAyMDAwMDsn
Iik7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmV2YWx1YXRl
T25DYWxsRnJhbWUiLCB7IGNhbGxGcmFtZUlkOiBjYWxsRnJhbWVJZCwgZXhwcmVzc2lvbjogIngg
PSAyMDAwMDsiIH0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5yZXN1bWUiLCB7fSwgZnVuY3Rpb24ocmVz
cG9uc2VPYmplY3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUmVzdW1l
ZCBmcm9tIGJyZWFrcG9pbnQiKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+RGVidWdnZXIuZXZhbHVhdGVPbkNh
bGxGcmFtZSBpbiBhIERGRyBjb21waWxlZCBmdW5jdGlvbnMuPC9wPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9p
bnQtZGZnLWNhbGxlZS1hbmQtZXhhbWluZS1kZmctbG9jYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZGZnLWNhbGxlZS1hbmQtZXhh
bWluZS1kZmctbG9jYWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxMTI1YzJjOGZkMDcxZDA4
YWFhMDMwODgxYzA1ZDZmOWFmNTZmYTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1kZmctY2FsbGVlLWFuZC1leGFtaW5lLWRm
Zy1sb2NhbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorRGVidWdnZXIuZXZhbHVhdGVP
bkNhbGxGcmFtZSBpbiBhIERGRyBjb21waWxlZCBmdW5jdGlvbiBmcm9tIGEgYnJlYWtwb2ludCBp
biBhIG5vbi1ERkcgY2FsbGVlLgorCitGb3VuZCBicmVha3BvaW50LmpzCitpbnNpZGUgYnJlYWtw
b2ludEJhc2ljCityZXN1bHQ6IDIwMDUwMDAKK2RmZyBmdW5jdGlvbiB3YXJtZWQgdXAKKworQnJl
YWtwb2ludCBzZXQgaW4gYnJlYWtwb2ludEJhc2ljKCkKK0hpdCBCcmVha3BvaW50IQorRXZhbHVh
dGluZyBpbiBERkcgZnJhbWUgYXQgZnJhbWVbMl06ICdnbG9iYWxWYWwzID0gMzA7JworUmVzcG9u
c2UgdmFsdWUgaXMgMzAKK0V2YWx1YXRpbmcgaW4gREZHIGZyYW1lIGF0IGZyYW1lWzJdOiAnbG9j
YWxWYWwzID0gMTI7JworUmVzcG9uc2UgdmFsdWUgaXMgMTIKK0V2YWx1YXRpbmcgaW4gREZHIGZy
YW1lIGF0IGZyYW1lWzJdOiAnbG9jYWxWYWwzJworUmVzcG9uc2UgdmFsdWUgaXMgMTIKK1Jlc3Vt
ZWQgZnJvbSBicmVha3BvaW50CitpbnNpZGUgYnJlYWtwb2ludEJhc2ljCityZXN1bHQ6IDQyCitU
ZXN0IGNvbXBsZXRlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9zZXRCcmVha3BvaW50LWRmZy1jYWxsZWUtYW5kLWV4YW1pbmUtZGZnLWxvY2FsLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1kZmctY2FsbGVlLWFu
ZC1leGFtaW5lLWRmZy1sb2NhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzZTkzMmU1YmEyZjY4NTU3ZTA5
MDRlOGZjYzg2ODFmY2E3MDBjYzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1kZmctY2FsbGVlLWFuZC1leGFtaW5lLWRmZy1s
b2NhbC5odG1sCkBAIC0wLDAgKzEsMTEzIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+
CisKKzxzY3JpcHQ+CisvLyBQdXQgdGhpcyBoZXJlIGluc3RlYWQgb2Ygb24gPGJvZHkgb25sb2Fk
PiB0byBwcmV2ZW50IGFuIGV4dHJhIERlYnVnZ2VyLnNjcmlwdFBhcnNlZCBldmVudC4KK3dpbmRv
dy5vbmxvYWQgPSBydW5UZXN0OworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICAvLyBUaGlzIHRl
c3Qgc2V0dGluZyBhIGJyZWFrcG9pbnRzIGluIERGRyBjb21waWxlZCBmdW5jdGlvbnMgY2FsbGVl
IGFuZCB0aGVuIG1vZGlmeQorICAgIC8vIGFuZCBleGFtaW5lIGEgZ2xvYmFsIGFuZCBsb2NhbCB2
aWEgdGhlIERGRyBmcmFtZS4KKworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVn
Z2VyLmVuYWJsZSIsIHt9KTsKKworICAgIHZhciBicmVha3BvaW50SWQgPSBudWxsOworICAgIHZh
ciBzY3JpcHRJZCA9IDA7CisgICAgdmFyIHN0YXJ0TGluZSA9IDA7CisKKyAgICBJbnNwZWN0b3JU
ZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNz
YWdlT2JqZWN0KQorICAgIHsKKyAgICAgICAgaWYgKC9yZXNvdXJjZXNcL2JyZWFrcG9pbnRcLmpz
JC8udGVzdChtZXNzYWdlT2JqZWN0LnBhcmFtcy51cmwpKSB7CisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiRm91bmQgYnJlYWtwb2ludC5qcyIpOworICAgICAgICAgICAgc2NyaXB0SWQg
PSBtZXNzYWdlT2JqZWN0LnBhcmFtcy5zY3JpcHRJZDsKKyAgICAgICAgICAgIHN0YXJ0TGluZSA9
IG1lc3NhZ2VPYmplY3QucGFyYW1zLnN0YXJ0TGluZTsKKworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHsKKyAgICAgICAgICAgICAgICBl
eHByZXNzaW9uOiAiZGZnV2l0aG91dElubGluZTMoKTsiCisgICAgICAgICAgICB9LCBmdW5jdGlv
bihyZXNwb25zZU9iamVjdCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJk
ZmcgZnVuY3Rpb24gd2FybWVkIHVwXG4iKTsKKworICAgICAgICAgICAgICAgIHZhciBsb2NhdGlv
bjEgPSB7c2NyaXB0SWQ6IHNjcmlwdElkLCBsaW5lTnVtYmVyOiAyLCBjb2x1bW5OdW1iZXI6IDB9
OworCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIu
c2V0QnJlYWtwb2ludCIsIHtsb2NhdGlvbjogbG9jYXRpb24xfSwgZnVuY3Rpb24ocmVzcG9uc2VP
YmplY3QpIHsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9y
KHJlc3BvbnNlT2JqZWN0KTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
IkJyZWFrcG9pbnQgc2V0IGluIGJyZWFrcG9pbnRCYXNpYygpIik7CisKKyAgICAgICAgICAgICAg
ICAgICAgYnJlYWtwb2ludElkID0gcmVzcG9uc2VPYmplY3QucmVzdWx0LmJyZWFrcG9pbnRJZDsK
KyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5l
dmFsdWF0ZSIsIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb246ICJkZmdXaXRo
b3V0SW5saW5lMygpOyIKKyAgICAgICAgICAgICAgICAgICAgfSwgZnVuY3Rpb24ocmVzcG9uc2VP
YmplY3QpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJUZXN0
IGNvbXBsZXRlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBs
ZXRlVGVzdCgpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5l
dmVudEhhbmRsZXJbIkRlYnVnZ2VyLnBhdXNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkK
KyAgICB7CisgICAgICAgIGZ1bmN0aW9uIGR1bXBSZXNwb25zZShyZXNwb25zZSkKKyAgICAgICAg
eworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2UucmVzdWx0
Lndhc1Rocm93bikgeworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRXhj
ZXB0aW9uIHRocm93biBwcm9jZXNzaW5nIHJlcXVlc3QiKTsKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiUmVzcG9uc2UgdmFsdWUgaXMgIiArIHJlc3BvbnNlLnJlc3VsdC5yZXN1bHQu
dmFsdWUpOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfSBjYXRj
aCAoZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJlc3VtZUZyb21CcmVha3BvaW50KCkKKyAgICAg
ICAgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIucmVz
dW1lIiwge30sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7CisgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIlJlc3VtZWQgZnJvbSBicmVha3BvaW50Iik7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgfQorCisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJIaXQgQnJlYWtwb2lu
dCEiKTsKKyAgICAgICAgdmFyIGNhbGxGcmFtZXMgPSBtZXNzYWdlT2JqZWN0LnBhcmFtcy5jYWxs
RnJhbWVzOworICAgICAgICBpZiAoY2FsbEZyYW1lcy5sZW5ndGggPCAzKSB7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDogdG9vIGZldyBmcmFtZXMgaW4gc3RhY2sgdHJhY2Ui
KTsKKyAgICAgICAgICAgIHJlc3VtZUZyb21CcmVha3BvaW50KCk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0KKyAgICAgICAgdmFyIGNhbGxGcmFtZUlkID0gY2FsbEZyYW1lc1syXS5j
YWxsRnJhbWVJZDsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkV2YWx1YXRpbmcgaW4gREZH
IGZyYW1lIGF0IGZyYW1lWzJdOiAnZ2xvYmFsVmFsMyA9IDMwOyciKTsKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZXZhbHVhdGVPbkNhbGxGcmFtZSIsIHsgY2Fs
bEZyYW1lSWQ6IGNhbGxGcmFtZUlkLCBleHByZXNzaW9uOiAiZ2xvYmFsVmFsMyA9IDMwOyIgfSwg
ZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKKyAgICAgICAgICAgIGlmICghZHVtcFJlc3BvbnNl
KHJlc3BvbnNlT2JqZWN0KSkgeworICAgICAgICAgICAgICAgIHJlc3VtZUZyb21CcmVha3BvaW50
KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coIkV2YWx1YXRpbmcgaW4gREZHIGZyYW1lIGF0IGZyYW1lWzJdOiAn
bG9jYWxWYWwzID0gMTI7JyIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiRGVidWdnZXIuZXZhbHVhdGVPbkNhbGxGcmFtZSIsIHsgY2FsbEZyYW1lSWQ6IGNhbGxGcmFt
ZUlkLCBleHByZXNzaW9uOiAibG9jYWxWYWwzID0gMTI7IiB9LCBmdW5jdGlvbihyZXNwb25zZU9i
amVjdCkgeworICAgICAgICAgICAgICAgIGlmICghZHVtcFJlc3BvbnNlKHJlc3BvbnNlT2JqZWN0
KSkgeworICAgICAgICAgICAgICAgICAgICByZXN1bWVGcm9tQnJlYWtwb2ludCgpOworICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJFdmFsdWF0aW5nIGluIERGRyBmcmFtZSBhdCBmcmFtZVsyXTog
J2xvY2FsVmFsMyciKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJEZWJ1Z2dlci5ldmFsdWF0ZU9uQ2FsbEZyYW1lIiwgeyBjYWxsRnJhbWVJZDogY2FsbEZyYW1l
SWQsIGV4cHJlc3Npb246ICJsb2NhbFZhbDMiIH0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7
CisgICAgICAgICAgICAgICAgICAgIGlmICghZHVtcFJlc3BvbnNlKHJlc3BvbnNlT2JqZWN0KSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdW1lRnJvbUJyZWFrcG9pbnQoKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5yZXN1bWUi
LCB7fSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJSZXN1bWVkIGZyb20gYnJlYWtwb2ludCIpOworICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9KTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+RGVidWdn
ZXIuZXZhbHVhdGVPbkNhbGxGcmFtZSBpbiBhIERGRyBjb21waWxlZCBmdW5jdGlvbiBmcm9tIGEg
YnJlYWtwb2ludCBpbiBhIG5vbi1ERkcgY2FsbGVlLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWRm
Zy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtw
b2ludC1kZmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzY2E2YWJlYWVmNTc4NGQ3ODJlYmQx
ODJkN2NiOWRlYjE1ZmRkYjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1kZmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTgg
QEAKK0RlYnVnZ2VyLnNldEJyZWFrcG9pbnQgaW4gREZHIGNvbXBpbGVkIGZ1bmN0aW9ucy4KKwor
Rm91bmQgYnJlYWtwb2ludC5qcworZGZnV2l0aG91dElubGluZSByZXN1bHQ6IDUwMjUwMAorZGZn
V2l0aElubGluZSByZXN1bHQ6IDUwNDUwMAorZGZnIGZ1bmN0aW9ucyB3YXJtZWQgdXAKKworQnJl
YWtwb2ludCBzZXQgaW4gbm90SW5saW5lYWJsZSgpCitCcmVha3BvaW50IHNldCBpbiBpbmxpbmVh
YmxlKCkKKworSGl0IEJyZWFrcG9pbnQgMSEKK1JlbW92ZWQgQnJlYWtwb2ludCAxIQorZGZnV2l0
aG91dElubGluZSByZXN1bHQ6IDUwMjUwMAorSGl0IEJyZWFrcG9pbnQgMiEKK1JlbW92ZWQgQnJl
YWtwb2ludCAyIQorUEFTUworZGZnV2l0aElubGluZSByZXN1bHQ6IDUwNDUwMAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1kZmcuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWRmZy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmYzZjA3MjRiMDIzZWExMWYxYWUxOWIxNzJiMDMxOTU5NmM2ZmUwMTcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtw
b2ludC1kZmcuaHRtbApAQCAtMCwwICsxLDg1IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYnJlYWtwb2ludC5qcyI+PC9zY3Jp
cHQ+CisKKzxzY3JpcHQ+CisvLyBQdXQgdGhpcyBoZXJlIGluc3RlYWQgb2Ygb24gPGJvZHkgb25s
b2FkPiB0byBwcmV2ZW50IGFuIGV4dHJhIERlYnVnZ2VyLnNjcmlwdFBhcnNlZCBldmVudC4KK3dp
bmRvdy5vbmxvYWQgPSBydW5UZXN0OworCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICAvLyBUaGlz
IHRlc3Qgc2V0dGluZyAyIGJyZWFrcG9pbnRzIGluIERGRyBjb21waWxlZCBmdW5jdGlvbnM6IG9u
ZSBpbmxpbmVkLAorICAgIC8vIGFuZCBvbmUgbm90IGlubGluZWQuCisKKyAgICBJbnNwZWN0b3JU
ZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7CisKKyAgICB2YXIgZGZnTm9u
SW5saW5lZEJyZWFrcG9pbnRJZCA9IG51bGw7CisgICAgdmFyIGRmZ0lubGluZWRCcmVha3BvaW50
SWQgPSBudWxsOworICAgIHZhciBzY3JpcHRJZGVudGlmaWVyID0gMDsKKyAgICB2YXIgc3RhcnRM
aW5lID0gMDsKKworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5zY3Jp
cHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgeworICAgICAgICBpZiAo
L3Jlc291cmNlc1wvYnJlYWtwb2ludFwuanMkLy50ZXN0KG1lc3NhZ2VPYmplY3QucGFyYW1zLnVy
bCkpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGb3VuZCBicmVha3BvaW50Lmpz
Iik7CisgICAgICAgICAgICBzY3JpcHRJZGVudGlmaWVyID0gbWVzc2FnZU9iamVjdC5wYXJhbXMu
c2NyaXB0SWQ7CisgICAgICAgICAgICBzdGFydExpbmUgPSBtZXNzYWdlT2JqZWN0LnBhcmFtcy5z
dGFydExpbmU7CisKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRp
bWUuZXZhbHVhdGUiLCB7CisgICAgICAgICAgICAgICAgZXhwcmVzc2lvbjogImRmZ1dpdGhvdXRJ
bmxpbmUoKTsgZGZnV2l0aElubGluZSgpOyIKKyAgICAgICAgICAgIH0sIGZ1bmN0aW9uKHJlc3Bv
bnNlT2JqZWN0KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coImRmZyBmdW5j
dGlvbnMgd2FybWVkIHVwXG4iKTsKKworICAgICAgICAgICAgICAgIHZhciBsb2NhdGlvbjEgPSB7
c2NyaXB0SWQ6IHNjcmlwdElkZW50aWZpZXIsIGxpbmVOdW1iZXI6IDIyLCBjb2x1bW5OdW1iZXI6
IDB9OworCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdn
ZXIuc2V0QnJlYWtwb2ludCIsIHtsb2NhdGlvbjogbG9jYXRpb24xfSwgZnVuY3Rpb24ocmVzcG9u
c2VPYmplY3QpIHsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVy
cm9yKHJlc3BvbnNlT2JqZWN0KTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkJyZWFrcG9pbnQgc2V0IGluIG5vdElubGluZWFibGUoKSIpOworCisgICAgICAgICAgICAg
ICAgICAgIGRmZ05vbklubGluZWRCcmVha3BvaW50SWQgPSByZXNwb25zZU9iamVjdC5yZXN1bHQu
YnJlYWtwb2ludElkOworICAgICAgICAgICAgICAgICAgICB2YXIgbG9jYXRpb24yID0ge3Njcmlw
dElkOiBzY3JpcHRJZGVudGlmaWVyLCBsaW5lTnVtYmVyOiAyOCwgY29sdW1uTnVtYmVyOiAwfTsK
KyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIu
c2V0QnJlYWtwb2ludCIsIHtsb2NhdGlvbjogbG9jYXRpb24yfSwgZnVuY3Rpb24ocmVzcG9uc2VP
YmplY3QpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JF
cnJvcihyZXNwb25zZU9iamVjdCk7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiQnJlYWtwb2ludCBzZXQgaW4gaW5saW5lYWJsZSgpXG4iKTsKKworICAgICAgICAg
ICAgICAgICAgICAgICAgZGZnSW5saW5lZEJyZWFrcG9pbnRJZCA9IHJlc3BvbnNlT2JqZWN0LnJl
c3VsdC5icmVha3BvaW50SWQ7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGV4cHJlc3Npb246ICJkZmdXaXRob3V0SW5saW5lKCk7IGRmZ1dpdGhJbmxpbmUoKTsi
CisgICAgICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIHZhciBicmVha3BvaW50c0hpdCA9IDA7CisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRs
ZXJbIkRlYnVnZ2VyLnBhdXNlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKKyAgICB7Cisg
ICAgICAgIHZhciBicmVha3BvaW50SWQgPSBudWxsOworICAgICAgICBicmVha3BvaW50c0hpdCsr
OworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiSGl0IEJyZWFrcG9pbnQgIiArIGJyZWFrcG9p
bnRzSGl0ICsgIiEiKTsKKyAgICAgICAgaWYgKGJyZWFrcG9pbnRzSGl0ID09IDEpCisgICAgICAg
ICAgICBicmVha3BvaW50SWQgPSBkZmdOb25JbmxpbmVkQnJlYWtwb2ludElkOworICAgICAgICBl
bHNlIGlmIChicmVha3BvaW50c0hpdCA9PSAyKQorICAgICAgICAgICAgYnJlYWtwb2ludElkID0g
ZGZnSW5saW5lZEJyZWFrcG9pbnRJZDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIlVuZXhwZWN0ZWQgYnJlYWtwb2ludCIpOworCisgICAgICAgIEluc3BlY3Rv
clRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnJlbW92ZUJyZWFrcG9pbnQiLCB7ImJyZWFrcG9p
bnRJZCI6IGJyZWFrcG9pbnRJZH0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUmVtb3ZlZCBCcmVha3BvaW50ICIgKyBicmVha3BvaW50
c0hpdCArICIhIik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1
Z2dlci5yZXN1bWUiLCB7fSwgZnVuY3Rpb24ocmVzcG9uc2VPYmplY3QpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoYnJlYWtwb2ludHNIaXQgPT0gMikgeworICAgICAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiUEFTUyIpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9KTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+RGVidWdn
ZXIuc2V0QnJlYWtwb2ludCBpbiBERkcgY29tcGlsZWQgZnVuY3Rpb25zLjwvcD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRC
cmVha3BvaW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9z
ZXRCcmVha3BvaW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NDNkYmM1MDVlNGUzZjk2ZWU1
YmI1ZWRkOTg2NDg5YjVmY2NkNDUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBA
QAorRGVidWdnZXIuc2V0QnJlYWtwb2ludCBvbiBsaW5lOjAgaW4gPHNjcmlwdCBzcmM9Ii4uLiI+
CisKK0ZvdW5kIGJyZWFrcG9pbnQuanMKK1BBU1M6IFJlY2VpdmVkIGVycm9yIHNldHRpbmcgZHVw
bGljYXRlIGJyZWFrcG9pbnQ6IEJyZWFrcG9pbnQgYXQgc3BlY2lmaWVkIGxvY2F0aW9uIGFscmVh
ZHkgZXhpc3RzLgorUnVubmluZyBicmVha3BvaW50QmFzaWMKK2luc2lkZSBicmVha3BvaW50QmFz
aWMKK0hpdCBCcmVha3BvaW50IQorUEFTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1vcHRpb25z
LWV4Y2VwdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTk5N2Y0NjhlMGU5YTAyNDhmM2Mx
ZDBkZGM1NzMzODMzZDlmNTlkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LW9wdGlvbnMtZXhjZXB0aW9uLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEyIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVHlwZUVycm9yOiB1
bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndGhpcy53aWxsLmNhdXNlJykK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4g
b2JqZWN0IChldmFsdWF0aW5nICd0aGlzLndpbGwuY2F1c2UnKQorRGVidWdnZXIuc2V0QnJlYWtw
b2ludCBvcHRpb25zLmNvbmRpdGlvbiBvciBvcHRpb25zLmFjdGlvbiB3aXRoIGV4Y2VwdGlvbgor
CitGb3VuZCBicmVha3BvaW50LmpzCitSdW5uaW5nIGJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uIHRv
IHRyaWdnZXIgY29uZGl0aW9uIGV4Y2VwdGlvbi4KK2luc2lkZSBicmVha3BvaW50V2l0aENvbmRp
dGlvbiBhOigxKSBiOigyKSBhK2I6KDMpCitQQVNTOiBDb25zb2xlIE1lc3NhZ2U6IHsic291cmNl
IjoiamF2YXNjcmlwdCIsImxldmVsIjoiZXJyb3IiLCJ0ZXh0IjoiVHlwZUVycm9yOiB1bmRlZmlu
ZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndGhpcy53aWxsLmNhdXNlJykiLCJsb2Nh
dGlvbiI6InVuZGVmaW5lZDoxOjEwIn0KK1J1bm5pbmcgYnJlYWtwb2ludEFjdGlvbnMgdG8gdHJp
Z2dlciBhY3Rpb25zIGV4Y2VwdGlvbi4KK2luc2lkZSBicmVha3BvaW50QWN0aW9ucyBhOigxKSBi
OigyKQorUEFTUzogQ29uc29sZSBNZXNzYWdlOiB7InNvdXJjZSI6ImphdmFzY3JpcHQiLCJsZXZl
bCI6ImVycm9yIiwidGV4dCI6IlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3Qg
KGV2YWx1YXRpbmcgJ3RoaXMud2lsbC5jYXVzZScpIiwibG9jYXRpb24iOiJ1bmRlZmluZWQ6MTox
MCJ9CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVh
a3BvaW50LW9wdGlvbnMtZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvc2V0QnJlYWtwb2ludC1vcHRpb25zLWV4Y2VwdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0
YzY4OTMzNDQwOTljZDcwMjU1YzhiNjQxNDkwZjQ4NThkN2IzYmMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1vcHRpb25zLWV4
Y2VwdGlvbi5odG1sCkBAIC0wLDAgKzEsNjAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9icmVha3BvaW50LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LmltcG9y
dFNjcmlwdCgiY29uc29sZS10ZXN0LmpzIik7CisKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21t
YW5kKCJDb25zb2xlLmVuYWJsZSIsIHt9KTsKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7CisKKyAgICB2YXIgbG9nc1NlZW4gPSAwOworICAgIGNv
bnN0IGV4cGVjdGVkTG9ncyA9IDI7CisKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsi
RGVidWdnZXIuc2NyaXB0UGFyc2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQorICAgIHsK
KyAgICAgICAgaWYgKC9yZXNvdXJjZXNcL2JyZWFrcG9pbnRcLmpzJC8udGVzdChtZXNzYWdlT2Jq
ZWN0LnBhcmFtcy51cmwpKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRm91bmQg
YnJlYWtwb2ludC5qcyIpOworICAgICAgICAgICAgdmFyIHNjcmlwdElkZW50aWZpZXIgPSBtZXNz
YWdlT2JqZWN0LnBhcmFtcy5zY3JpcHRJZDsKKyAgICAgICAgICAgIHZhciBsb2NhdGlvbiA9IHtz
Y3JpcHRJZDogc2NyaXB0SWRlbnRpZmllciwgbGluZU51bWJlcjogOCwgY29sdW1uTnVtYmVyOiAw
fTsKKyAgICAgICAgICAgIHZhciBvcHRpb25zID0ge2NvbmRpdGlvbjogInRoaXMud2lsbC5jYXVz
ZS5leGNlcHRpb24iLCBhdXRvQ29udGludWU6IHRydWV9OworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludCIsIHtsb2NhdGlvbjogbG9j
YXRpb24sIG9wdGlvbnM6IG9wdGlvbnN9LCBmdW5jdGlvbihyZXNwb25zZU9iamVjdCkgeworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7
CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlJ1bm5pbmcgYnJlYWtwb2ludFdp
dGhDb25kaXRpb24gdG8gdHJpZ2dlciBjb25kaXRpb24gZXhjZXB0aW9uLiIpOworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhw
cmVzc2lvbjogImJyZWFrcG9pbnRXaXRoQ29uZGl0aW9uKDEsMikifSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uID0ge3NjcmlwdElkOiBzY3JpcHRJZGVudGlmaWVy
LCBsaW5lTnVtYmVyOiAxOCwgY29sdW1uTnVtYmVyOiAwfTsKKyAgICAgICAgICAgICAgICAgICAg
b3B0aW9ucyA9IHthY3Rpb25zOiBbeyJ0eXBlIjogImV2YWx1YXRlIiwgImRhdGEiOiAidGhpcy53
aWxsLmNhdXNlLmV4Y2VwdGlvbiJ9XSwgYXV0b0NvbnRpbnVlOiB0cnVlfTsKKyAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2lu
dCIsIHtsb2NhdGlvbjogbG9jYXRpb24sIG9wdGlvbnM6IG9wdGlvbnN9LCBmdW5jdGlvbihyZXNw
b25zZU9iamVjdCkgeworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
IlJ1bm5pbmcgYnJlYWtwb2ludEFjdGlvbnMgdG8gdHJpZ2dlciBhY3Rpb25zIGV4Y2VwdGlvbi4i
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1
bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogImJyZWFrcG9pbnRBY3Rpb25zKDEsMikifSk7
CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxl
clsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQorICAgIHsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkhpdCBCcmVha3BvaW50ISIpOworCisgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJGQUlMOiBzaG91bGQgbm90IGhhdmUgaGl0IGJyZWFrcG9pbnQsIGF1
dG9Db250aW51ZSB3YXMgdHJ1ZSIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVz
dCgpOworICAgIH0KKworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJDb25zb2xlLm1l
c3NhZ2VBZGRlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKKyAgICB7CisgICAgICAgIHZh
ciBtZXNzYWdlID0gSW5zcGVjdG9yVGVzdC5Db25zb2xlLnNhbml0aXplQ29uc29sZU1lc3NhZ2Uo
bWVzc2FnZU9iamVjdCk7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiBDb25zb2xl
IE1lc3NhZ2U6ICIgKyBKU09OLnN0cmluZ2lmeShtZXNzYWdlKSk7CisKKyAgICAgICAgaWYgKCsr
bG9nc1NlZW4gPT09IGV4cGVjdGVkTG9ncykKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+Cis8cD5EZWJ1Z2dlci5zZXRCcmVha3BvaW50IG9wdGlvbnMuY29uZGl0aW9u
IG9yIG9wdGlvbnMuYWN0aW9uIHdpdGggZXhjZXB0aW9uPC9wPgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTQzYTIzYzk4Njk5NzgyMDMyZDYxZTY5OGY4ZWVkZTUwMDgxZDE4YwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3Bv
aW50Lmh0bWwKQEAgLTAsMCArMSw0NCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2JyZWFrcG9pbnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1h
bmQoIkRlYnVnZ2VyLmVuYWJsZSIsIHt9KTsKKworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5k
bGVyWyJEZWJ1Z2dlci5zY3JpcHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisg
ICAgeworICAgICAgICBpZiAoL3Jlc291cmNlc1wvYnJlYWtwb2ludFwuanMkLy50ZXN0KG1lc3Nh
Z2VPYmplY3QucGFyYW1zLnVybCkpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJG
b3VuZCBicmVha3BvaW50LmpzIik7CisgICAgICAgICAgICB2YXIgc2NyaXB0SWRlbnRpZmllciA9
IG1lc3NhZ2VPYmplY3QucGFyYW1zLnNjcmlwdElkOworICAgICAgICAgICAgdmFyIGxvY2F0aW9u
ID0ge3NjcmlwdElkOiBzY3JpcHRJZGVudGlmaWVyLCBsaW5lTnVtYmVyOiAzLCBjb2x1bW5OdW1i
ZXI6IDB9OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIu
c2V0QnJlYWtwb2ludCIsIHtsb2NhdGlvbjogbG9jYXRpb259LCBmdW5jdGlvbihyZXNwb25zZU9i
amVjdCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNw
b25zZU9iamVjdCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
RGVidWdnZXIuc2V0QnJlYWtwb2ludCIsIHtsb2NhdGlvbjogbG9jYXRpb259LCBmdW5jdGlvbihy
ZXNwb25zZU9iamVjdCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3BvbnNlT2JqZWN0
LmVycm9yKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJ
TDogRXhwZWN0ZWQgZXJyb3Igc2V0dGluZyBkdXBsaWNhdGUgYnJlYWtwb2ludCIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCJQQVNTOiBSZWNlaXZlZCBlcnJvciBzZXR0aW5nIGR1cGxpY2F0ZSBicmVha3BvaW50
OiAiICsgcmVzcG9uc2VPYmplY3QuZXJyb3IubWVzc2FnZSk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUnVubmluZyBicmVha3BvaW50QmFzaWMiKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZh
bHVhdGUiLCB7ZXhwcmVzc2lvbjogImJyZWFrcG9pbnRCYXNpYygpIn0pOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVz
ZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgeworICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiSGl0IEJyZWFrcG9pbnQhIik7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQ
QVNTIik7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8cD5EZWJ1Z2dl
ci5zZXRCcmVha3BvaW50IG9uIGxpbmU6MCBpbiAmbHQ7c2NyaXB0IHNyYz0iLi4uIiZndDs8L3A+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTBjMTE2YjQ1OWM5ZjdkZWQzNGYyNTYxMzhmYTU4MmY3NmRh
NzM5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9z
ZXRCcmVha3BvaW50QnlVcmwtc291cmNlVVJMLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAK
K0RlYnVnZ2VyLnNldEJyZWFrcG9pbnRCeVVybCBpbiBTY3JpcHQgbmFtZWQgdmlhIHNvdXJjZVVS
TAorCitGb3VuZCBzb3VyY2VVUkwtdGVzdC5qcworUnVubmluZyBzb3VyY2VVUkxGdW5jdGlvbgor
SGl0IEJyZWFrcG9pbnQhCitFdmFsdXRlZCB2YWx1ZSBvZiBgYWAgKGV4cGVjdGluZyBudW1iZXIg
MSkgd2FzOiB7InR5cGUiOiJudW1iZXIiLCJ2YWx1ZSI6MSwiZGVzY3JpcHRpb24iOiIxIn0KK0V2
YWx1dGVkIHZhbHVlIG9mIGBjYCAoZXhwZWN0aW5nIHVuZGVmaW5lZCkgd2FzOiB7InR5cGUiOiJ1
bmRlZmluZWQifQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
c2V0QnJlYWtwb2ludEJ5VXJsLXNvdXJjZVVSTC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3NldEJyZWFrcG9pbnRCeVVybC1zb3VyY2VVUkwuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
ZWYwZjI0NTgxMjA3NmY5NDFkOWMxYTc0ZjQyYTlmZjNkZjdkNmRiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnRCeVVybC1zb3Vy
Y2VVUkwuaHRtbApAQCAtMCwwICsxLDQ0IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvYnJlYWtwb2ludC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorLy8gc291cmNlVVJMLXRlc3QuanM6CitldmFsKCJmdW5jdGlvbiBzb3VyY2VV
UkxGdW5jdGlvbigpIHtcbiAgICB2YXIgYSA9IDE7XG4gICAgdmFyIGIgPSAyO1xuICAgIHZhciBj
ID0gYStiO1xufVxuLy8jIHNvdXJjZVVSTD1zb3VyY2VVUkwtdGVzdC5qcyIpCisKK2Z1bmN0aW9u
IHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmVuYWJs
ZSIsIHt9KTsKKworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5zY3Jp
cHRQYXJzZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgeworICAgICAgICBpZiAo
L3NvdXJjZVVSTC10ZXN0XC5qcyQvLnRlc3QobWVzc2FnZU9iamVjdC5wYXJhbXMudXJsKSkgewor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZvdW5kIHNvdXJjZVVSTC10ZXN0LmpzIik7
CisgICAgICAgICAgICB2YXIgcGFyYW1zID0ge3VybDogbWVzc2FnZU9iamVjdC5wYXJhbXMudXJs
LCBsaW5lTnVtYmVyOiAzLCBjb2x1bW5OdW1iZXI6IDB9OworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludEJ5VXJsIiwgcGFyYW1zLCBm
dW5jdGlvbihyZXNwb25zZU9iamVjdCkgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
Y2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIlJ1bm5pbmcgc291cmNlVVJMRnVuY3Rpb24iKTsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246
ICJzb3VyY2VVUkxGdW5jdGlvbigpIn0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucGF1c2VkIl0g
PSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkhpdCBCcmVha3BvaW50ISIpOworICAgICAgICB2YXIgY2FsbEZyYW1lSWRlbnRpZmllciA9
IG1lc3NhZ2VPYmplY3QucGFyYW1zLmNhbGxGcmFtZXNbMF0uY2FsbEZyYW1lSWQ7CisgICAgICAg
IEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLmV2YWx1YXRlT25DYWxsRnJhbWUi
LCB7Y2FsbEZyYW1lSWQ6IGNhbGxGcmFtZUlkZW50aWZpZXIsIGV4cHJlc3Npb246ICJhIn0sIGZ1
bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJF
dmFsdXRlZCB2YWx1ZSBvZiBgYWAgKGV4cGVjdGluZyBudW1iZXIgMSkgd2FzOiAiICsgSlNPTi5z
dHJpbmdpZnkobWVzc2FnZU9iamVjdC5yZXN1bHQucmVzdWx0KSk7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5ldmFsdWF0ZU9uQ2FsbEZyYW1lIiwge2Nh
bGxGcmFtZUlkOiBjYWxsRnJhbWVJZGVudGlmaWVyLCBleHByZXNzaW9uOiAiYyJ9LCBmdW5jdGlv
bihtZXNzYWdlT2JqZWN0KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkV2
YWx1dGVkIHZhbHVlIG9mIGBjYCAoZXhwZWN0aW5nIHVuZGVmaW5lZCkgd2FzOiAiICsgSlNPTi5z
dHJpbmdpZnkobWVzc2FnZU9iamVjdC5yZXN1bHQucmVzdWx0KSk7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
KTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KKzxwPkRlYnVnZ2VyLnNldEJyZWFrcG9pbnRCeVVybCBpbiBTY3JpcHQgbmFtZWQgdmlhIHNv
dXJjZVVSTDwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy1hbGwtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFsbC1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzUyNWY1ZTMxZDAwZTljYTgxMTUwZWQ3YWYwZWU3ZjQ5
NWRkZDI2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9zZXRQYXVzZU9uRXhjZXB0aW9ucy1hbGwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDcgQEAK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBjYXVnaHQgaW5saW5lOiB7ImxpbmUiOjEsImNvbHVt
biI6MzZ9CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzg6IGNhdGNoTmVzdGVkIGNhdWdodCBleGNl
cHRpb246IHsibGluZSI6MywiY29sdW1uIjoxMSwic291cmNlVVJMIjoiZXhjZXB0aW9uLmpzIn0K
K0NPTlNPTEUgTUVTU0FHRTogbGluZSAzODogY2F0Y2hOZXN0ZWQgY2F1Z2h0IGV4Y2VwdGlvbjog
eyJjb2RlIjo4LCJuYW1lIjoiTm90Rm91bmRFcnJvciIsIm1lc3NhZ2UiOiJOb3RGb3VuZEVycm9y
OiBET00gRXhjZXB0aW9uIDgiLCJsaW5lIjo4LCJjb2x1bW4iOjMwLCJzb3VyY2VVUkwiOiJleGNl
cHRpb24uanMifQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM4OiBjYXRjaE5lc3RlZCBjYXVnaHQg
ZXhjZXB0aW9uOiAiZXhjZXB0aW9uIGluIGhvc3QgZnVuY3Rpb24iCitDT05TT0xFIE1FU1NBR0U6
IGxpbmUgMzg6IGNhdGNoTmVzdGVkIGNhdWdodCBleGNlcHRpb246ICJleGNlcHRpb24gc3RyaW5n
IgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM4OiBjYXRjaE5lc3RlZCBjYXVnaHQgZXhjZXB0aW9u
OiB7ImxpbmUiOjEsImNvbHVtbiI6NjF9CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogVHlwZUVy
cm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnKHt9KS5hLmInKQor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDM6IFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJyh7fSkuYS5iJykKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA4OiBO
b3RGb3VuZEVycm9yOiBET00gRXhjZXB0aW9uIDg6IEFuIGF0dGVtcHQgd2FzIG1hZGUgdG8gcmVm
ZXJlbmNlIGEgTm9kZSBpbiBhIGNvbnRleHQgd2hlcmUgaXQgZG9lcyBub3QgZXhpc3QuCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMjQ6IGV4Y2VwdGlvbiBpbiBob3N0IGZ1bmN0aW9uCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTM6IGV4Y2VwdGlvbiBzdHJpbmcKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxODogW29iamVjdCBPYmplY3RdCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg6IEVycm9yOiBl
cnJvciBtZXNzYWdlCitEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyBhbGwKKworRGVidWdn
ZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgLSBhbGwKK1BBU1MgLSBkaWQgbm90IHBhdXNlIG9uIG5v
bi1leGNlcHRpb24gc3RhdGVtZW50cworUGF1c2VkIQorUmVzdW1lZAorUGF1c2VkIQorUmVzdW1l
ZAorUGF1c2VkIQorUmVzdW1lZAorUGF1c2VkIQorUmVzdW1lZAorUGF1c2VkIQorUmVzdW1lZAor
UGF1c2VkIQorUmVzdW1lZAorUEFTUyAtIHBhdXNlZCBmb3IgZWFjaCBjYXVnaHQgZXhjZXB0aW9u
CitQYXVzZWQhCitSZXN1bWVkCitQYXVzZWQhCitSZXN1bWVkCitQYXVzZWQhCitSZXN1bWVkCitQ
YXVzZWQhCitSZXN1bWVkCitQYXVzZWQhCitSZXN1bWVkCitQYXVzZWQhCitSZXN1bWVkCitQYXVz
ZWQhCitSZXN1bWVkCitQQVNTIC0gcGF1c2VkIGZvciBlYWNoIHVuY2F1Z2h0IGV4Y2VwdGlvbgor
UEFTUyAtIGRpZCBub3QgcGF1c2Ugb24gbm9uLWV4Y2VwdGlvbiBzdGF0ZW1lbnRzCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9u
cy1hbGwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhj
ZXB0aW9ucy1hbGwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMmMwM2YxYTAxYmRmZTc4ZGIxNTJiNDJlN2Qz
ZDkxM2FjNGM4NmZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLWFsbC5odG1sCkBAIC0wLDAgKzEsMTM3IEBACis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jl
c291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvZXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sK
KyAgICB2YXIgZXhwZWN0UGF1c2UgPSB0cnVlOworCisgICAgdmFyIHN0YXRlbWVudHNXaXRob3V0
RXhjZXB0aW9ucyA9IFsKKyAgICAgICAgIjErMTsiLAorICAgICAgICAibm9FeGNlcHRpb24oKTsi
LAorICAgICAgICAiY2F0Y2hOZXN0ZWQobm9FeGNlcHRpb24sIDcpOyIKKyAgICBdOworCisgICAg
dmFyIGN1cnJlbnRDYXVnaHRFeGNlcHRpb25TdGF0ZW1lbnQgPSAwOworICAgIHZhciBzdGF0ZW1l
bnRzV2l0aENhdWdodEV4Y2VwdGlvbnMgPSBbCisgICAgICAgICJ0cnl7ICh7fSkuYS5iLmMuZCB9
IGNhdGNoIChlKSB7IGNvbnNvbGUubG9nKCdjYXVnaHQgaW5saW5lOiAnICsgSlNPTi5zdHJpbmdp
ZnkoZSkpOyB9IiwKKyAgICAgICAgImNhdGNoTmVzdGVkKGV4Y2VwdGlvbkJhc2ljLCAxKTsiLAor
ICAgICAgICAiY2F0Y2hOZXN0ZWQoZXhjZXB0aW9uRE9NLCAyKTsiLAorICAgICAgICAiY2F0Y2hO
ZXN0ZWQoZXhjZXB0aW9uSW5Ib3N0RnVuY3Rpb24sIDMpOyIsCisgICAgICAgICJjYXRjaE5lc3Rl
ZCh0aHJvd1N0cmluZywgMTApOyIsCisgICAgICAgICJjYXRjaE5lc3RlZCh0aHJvd1BhcmFtLCA1
LCBuZXcgRXJyb3IoJ2Vycm9yIG1lc3NhZ2UnKSk7IgorICAgIF07CisKKyAgICB2YXIgY3VycmVu
dFVuY2F1Z2h0RXhjZXB0aW9uU3RhdGVtZW50ID0gMDsKKyAgICB2YXIgc3RhdGVtZW50c1dpdGhV
bmNhdWdodEV4Y2VwdGlvbnMgPSBbCisgICAgICAgICIoe30pLmEuYi5jLmQ7IiwKKyAgICAgICAg
ImV4Y2VwdGlvbkJhc2ljKCk7IiwKKyAgICAgICAgImV4Y2VwdGlvbkRPTSgpOyIsCisgICAgICAg
ICJleGNlcHRpb25Jbkhvc3RGdW5jdGlvbigpOyIsCisgICAgICAgICJ0aHJvd1N0cmluZygpOyIs
CisgICAgICAgICJ0aHJvd1BhcmFtKHt4OjF9KTsiLAorICAgICAgICAidGhyb3dQYXJhbShuZXcg
RXJyb3IoJ2Vycm9yIG1lc3NhZ2UnKSk7IgorICAgIF07CisKKyAgICB2YXIgZXh0cmFDYXVnaHRF
eGNlcHRpb25QYXVzZXMgPSAwOworICAgIHZhciBleHRyYVVuY2F1Z2h0RXhjZXB0aW9uUGF1c2Vz
ID0gMDsKKworICAgIGZ1bmN0aW9uIGV2YWx1YXRlU3RhdGVtZW50cyhsaXN0LCBjYWxsYmFjaykK
KyAgICB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7ICsraSkgewor
ICAgICAgICAgICAgdmFyIHN0YXRlbWVudCA9IGxpc3RbaV07CisgICAgICAgICAgICB2YXIgbGFz
dCA9IGkgPT09IGxpc3QubGVuZ3RoIC0gMTsKKyAgICAgICAgICAgIHZhciByZXNwb25zZUNhbGxi
YWNrID0gbGFzdCA/IGZ1bmN0aW9uKCkgeyBzZXRUaW1lb3V0KGNhbGxiYWNrLCAxMCk7IH0gOiBm
dW5jdGlvbigpe307CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50
aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyAiICsg
c3RhdGVtZW50ICsgIiB9LCAwKTsifSwgcmVzcG9uc2VDYWxsYmFjayk7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBldmFsdWF0ZUV4cGVjdGVkTm9QYXVzZXMoY2FsbGJhY2spCisg
ICAgeworICAgICAgICB2YXIgc3RhdGVtZW50cyA9IHN0YXRlbWVudHNXaXRob3V0RXhjZXB0aW9u
czsKKyAgICAgICAgZXZhbHVhdGVTdGF0ZW1lbnRzKHN0YXRlbWVudHMsIGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1MgLSBkaWQgbm90IHBhdXNlIG9uIG5v
bi1leGNlcHRpb24gc3RhdGVtZW50cyIpOworICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAg
ICAgfSk7CisgICAgfQorCisKKyAgICB2YXIgdHJpZ2dlck5leHQgPSB0cmlnZ2VyTmV4dENhdWdo
dEV4Y2VwdGlvbjsKKworICAgIGZ1bmN0aW9uIHRyaWdnZXJOZXh0Q2F1Z2h0RXhjZXB0aW9uKCkK
KyAgICB7CisgICAgICAgIC8vIEV2YWx1YXRlIHN0YXRlbWVudCBhbmQgZXhwZWN0IHRvIHBhdXNl
LgorICAgICAgICBpZiAoY3VycmVudENhdWdodEV4Y2VwdGlvblN0YXRlbWVudCA8IHN0YXRlbWVu
dHNXaXRoQ2F1Z2h0RXhjZXB0aW9ucy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHZhciBzdGF0ZW1l
bnQgPSBzdGF0ZW1lbnRzV2l0aENhdWdodEV4Y2VwdGlvbnNbY3VycmVudENhdWdodEV4Y2VwdGlv
blN0YXRlbWVudCsrXTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1
bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7ICIg
KyBzdGF0ZW1lbnQgKyAiIH0sIDApOyJ9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIC8vIEZJWE1FOiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTIxMTA4PiBXZWIg
SW5zcGVjdG9yIGdldHMgcGF1c2VkIHR3aWNlIHdoZW4gdGhlcmUgaXMgYW4gZXhjZXB0aW9uIGlu
IGhvc3QgZnVuY3Rpb24KKyAgICAgICAgaWYgKGV4dHJhQ2F1Z2h0RXhjZXB0aW9uUGF1c2VzLS0g
PiAwKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIC8vIERvbmUgZXZhbHVhdGluZyBj
YXVnaHQgZXhjZXB0aW9ucyBzdGF0ZW1lbnRzLiBNb3ZlIG9uIHRvIHVuY2F1Z2h0IGV4Y2VwdGlv
bnMuCisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTIC0gcGF1c2VkIGZvciBlYWNoIGNh
dWdodCBleGNlcHRpb24iKTsKKyAgICAgICAgdHJpZ2dlck5leHQgPSB0cmlnZ2VyTmV4dFVuY2F1
Z2h0RXhjZXB0aW9uOworICAgICAgICB0cmlnZ2VyTmV4dCgpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIHRyaWdnZXJOZXh0VW5jYXVnaHRFeGNlcHRpb24oKQorICAgIHsKKyAgICAgICAgLy8gRXZh
bHVhdGUgc3RhdGVtZW50IGFuZCBleHBlY3QgdG8gcGF1c2UuCisgICAgICAgIGlmIChjdXJyZW50
VW5jYXVnaHRFeGNlcHRpb25TdGF0ZW1lbnQgPCBzdGF0ZW1lbnRzV2l0aFVuY2F1Z2h0RXhjZXB0
aW9ucy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHZhciBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRzV2l0
aFVuY2F1Z2h0RXhjZXB0aW9uc1tjdXJyZW50VW5jYXVnaHRFeGNlcHRpb25TdGF0ZW1lbnQrK107
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRl
Iiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyAiICsgc3RhdGVtZW50ICsg
IiB9LCAwKTsifSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAv
LyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEyMTEwOD4gV2ViIEluc3BlY3RvciBnZXRz
IHBhdXNlZCB0d2ljZSB3aGVuIHRoZXJlIGlzIGFuIGV4Y2VwdGlvbiBpbiBob3N0IGZ1bmN0aW9u
CisgICAgICAgIGlmIChleHRyYVVuY2F1Z2h0RXhjZXB0aW9uUGF1c2VzLS0gPiAwKQorICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgIC8vIERvbmUgZXZhbHVhdGluZyBzdGF0ZW1lbnRzIHRv
IHBhdXNlLiBFdmFsdWF0ZSBzb21lIG1vcmUgd2UgZG8gbm90IGV4cGVjdCB0byBwYXVzZS4KKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1MgLSBwYXVzZWQgZm9yIGVhY2ggdW5jYXVnaHQg
ZXhjZXB0aW9uIik7CisgICAgICAgIGV4cGVjdFBhdXNlID0gZmFsc2U7CisgICAgICAgIGV2YWx1
YXRlRXhwZWN0ZWROb1BhdXNlcyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0KKworCisgICAgSW5zcGVjdG9y
VGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuZW5hYmxlIiwge30pOworICAgIEluc3BlY3RvclRl
c3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIiwge3N0YXRlOiAi
YWxsIn0sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
Y2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyAtIGFsbCIpOworICAgICAgICBldmFsdWF0
ZUV4cGVjdGVkTm9QYXVzZXMoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBleHBlY3RQYXVzZSA9
IHRydWU7CisgICAgICAgICAgICB0cmlnZ2VyTmV4dCgpOworICAgICAgICB9KTsKKyAgICB9KTsK
KworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVzZWQiXSA9IGZ1
bmN0aW9uKG1lc3NhZ2VPYmplY3QpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
UGF1c2VkISIpOworCisgICAgICAgIGlmICghZXhwZWN0UGF1c2UpIHsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJGQUlMIC0gZGVidWdnZXIgcGF1c2VkIHdoZW4gd2UgZGlkIG5vdCBl
eHBlY3QgdG8iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBJbnNwZWN0b3JUZXN0LnNl
bmRDb21tYW5kKCJEZWJ1Z2dlci5yZXN1bWUiLCB7fSk7CisgICAgfQorCisgICAgSW5zcGVjdG9y
VGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnJlc3VtZWQiXSA9IGZ1bmN0aW9uKG1lc3NhZ2VP
YmplY3QpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUmVzdW1lZCIpOworICAg
ICAgICB0cmlnZ2VyTmV4dCgpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPHA+RGVidWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMgYWxs
PC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLW5vbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLW5vbmUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjNiYTAxYzUxOWFhYzJhZjI1MGQ5OWQ2MDk4MmQ4MDllMzVjMTVh
NGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0
UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDE6IGNhdWdodCBpbmxpbmU6IHsibGluZSI6MSwiY29sdW1uIjoz
Nn0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzODogY2F0Y2hOZXN0ZWQgY2F1Z2h0IGV4Y2VwdGlv
bjogeyJsaW5lIjozLCJjb2x1bW4iOjExLCJzb3VyY2VVUkwiOiJleGNlcHRpb24uanMifQorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDM4OiBjYXRjaE5lc3RlZCBjYXVnaHQgZXhjZXB0aW9uOiB7ImNv
ZGUiOjgsIm5hbWUiOiJOb3RGb3VuZEVycm9yIiwibWVzc2FnZSI6Ik5vdEZvdW5kRXJyb3I6IERP
TSBFeGNlcHRpb24gOCIsImxpbmUiOjgsImNvbHVtbiI6MzAsInNvdXJjZVVSTCI6ImV4Y2VwdGlv
bi5qcyJ9CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzg6IGNhdGNoTmVzdGVkIGNhdWdodCBleGNl
cHRpb246ICJleGNlcHRpb24gaW4gaG9zdCBmdW5jdGlvbiIKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAzODogY2F0Y2hOZXN0ZWQgY2F1Z2h0IGV4Y2VwdGlvbjogImV4Y2VwdGlvbiBzdHJpbmciCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgMzg6IGNhdGNoTmVzdGVkIGNhdWdodCBleGNlcHRpb246IHsi
bGluZSI6MSwiY29sdW1uIjo2MX0KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzOiBUeXBlRXJyb3I6
IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICcoe30pLmEuYicpCitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgODogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4OiBBbiBh
dHRlbXB0IHdhcyBtYWRlIHRvIHJlZmVyZW5jZSBhIE5vZGUgaW4gYSBjb250ZXh0IHdoZXJlIGl0
IGRvZXMgbm90IGV4aXN0LgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI0OiBleGNlcHRpb24gaW4g
aG9zdCBmdW5jdGlvbgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzOiBleGNlcHRpb24gc3RyaW5n
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg6IFtvYmplY3QgT2JqZWN0XQorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE4OiBFcnJvcjogZXJyb3IgbWVzc2FnZQorRGVidWdnZXIuc2V0UGF1c2VPbkV4
Y2VwdGlvbnMgbm9uZQorCitEZWJ1Z2dlci5zZXRQYXVzZU9uRXhjZXB0aW9ucyAtIG5vbmUKK1BB
U1M6IE5vIHBhdXNlcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLW5vbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZDZl
YzQ5MDUxMzY4NmM0OTc5MjU1MWY4OTA3ZjVhNjIyYjU4Y2FhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLW5vbmUu
aHRtbApAQCAtMCwwICsxLDQ3IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJE
ZWJ1Z2dlci5lbmFibGUiLCB7fSk7CisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVi
dWdnZXIuc2V0UGF1c2VPbkV4Y2VwdGlvbnMiLCB7c3RhdGU6ICJub25lIn0sIGZ1bmN0aW9uKHJl
c3BvbnNlT2JqZWN0KSB7CisgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNw
b25zZU9iamVjdCk7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJEZWJ1Z2dlci5zZXRQYXVz
ZU9uRXhjZXB0aW9ucyAtIG5vbmUiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigp
IHsgMSsxOyB9LCAwKTsifSk7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1
bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IG5v
RXhjZXB0aW9uKCk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigp
IHsgY2F0Y2hOZXN0ZWQobm9FeGNlcHRpb24sIDcpOyB9LCAwKTsifSk7CisgICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRyeXsgKHt9KS5hLmIuYy5kIH0gY2F0Y2ggKGUpIHsgY29u
c29sZS5sb2coJ2NhdWdodCBpbmxpbmU6ICcgKyBKU09OLnN0cmluZ2lmeShlKSk7IH0gfSwgMCk7
In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRl
Iiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZChleGNl
cHRpb25CYXNpYywgMSk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29t
bWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlv
bigpIHsgY2F0Y2hOZXN0ZWQoZXhjZXB0aW9uRE9NLCAyKTsgfSwgMCk7In0pOworICAgICAgICBJ
bnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246
ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZChleGNlcHRpb25Jbkhvc3RGdW5j
dGlvbiwgMyk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
UnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsg
Y2F0Y2hOZXN0ZWQodGhyb3dTdHJpbmcsIDEwKTsgfSwgMCk7In0pOworICAgICAgICBJbnNwZWN0
b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgeyBjYXRjaE5lc3RlZCh0aHJvd1BhcmFtLCA1LCBuZXcgRXJyb3Io
J2Vycm9yIG1lc3NhZ2UnKSk7IH0sIDApOyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCgiUnVudGltZS5ldmFsdWF0ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5j
dGlvbigpIHsge30uYS5iLmMuZDsgfSwgMCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNl
bmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgeyBleGNlcHRpb25CYXNpYygpOyB9LCAwKTsifSk7CisgICAgICAgIEluc3BlY3Rv
clRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjogInNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7IGV4Y2VwdGlvbkRPTSgpOyB9LCAwKTsifSk7CisgICAgICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ZXhwcmVzc2lvbjog
InNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGV4Y2VwdGlvbkluSG9zdEZ1bmN0aW9uKCk7IH0sIDAp
OyJ9KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFsdWF0
ZSIsIHtleHByZXNzaW9uOiAic2V0VGltZW91dChmdW5jdGlvbigpIHsgdGhyb3dTdHJpbmcoKTsg
fSwgMCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2
YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0aHJvd1BhcmFt
KHt4OjF9KTsgfSwgMCk7In0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJS
dW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0
aHJvd1BhcmFtKG5ldyBFcnJvcignZXJyb3IgbWVzc2FnZScpKTsgfSwgMCk7In0sIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogTm8gcGF1c2VzIik7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgIH0sIDEwKTsKKyAgICAg
ICAgfSk7CisgICAgfSk7CisKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRGVidWdn
ZXIucGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KQorICAgIHsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIlBhdXNlZCEiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZB
SUwiKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPkRlYnVnZ2Vy
LnNldFBhdXNlT25FeGNlcHRpb25zIG5vbmU8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMt
dW5jYXVnaHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Nl
dFBhdXNlT25FeGNlcHRpb25zLXVuY2F1Z2h0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNGUx
NGY2ZDFiZWRlOGU5Mjg0MjdjNzg4MjkzMDYyZGJhNjA0OWFjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25zLXVuY2F1
Z2h0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQxIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTogY2F1Z2h0IGlubGluZTogeyJsaW5lIjoxLCJjb2x1bW4iOjM2fQorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDM4OiBjYXRjaE5lc3RlZCBjYXVnaHQgZXhjZXB0aW9uOiB7ImxpbmUiOjMsImNvbHVt
biI6MTEsInNvdXJjZVVSTCI6ImV4Y2VwdGlvbi5qcyJ9CitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
Mzg6IGNhdGNoTmVzdGVkIGNhdWdodCBleGNlcHRpb246IHsiY29kZSI6OCwibmFtZSI6Ik5vdEZv
dW5kRXJyb3IiLCJtZXNzYWdlIjoiTm90Rm91bmRFcnJvcjogRE9NIEV4Y2VwdGlvbiA4IiwibGlu
ZSI6OCwiY29sdW1uIjozMCwic291cmNlVVJMIjoiZXhjZXB0aW9uLmpzIn0KK0NPTlNPTEUgTUVT
U0FHRTogbGluZSAzODogY2F0Y2hOZXN0ZWQgY2F1Z2h0IGV4Y2VwdGlvbjogImV4Y2VwdGlvbiBp
biBob3N0IGZ1bmN0aW9uIgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM4OiBjYXRjaE5lc3RlZCBj
YXVnaHQgZXhjZXB0aW9uOiAiZXhjZXB0aW9uIHN0cmluZyIKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSAzODogY2F0Y2hOZXN0ZWQgY2F1Z2h0IGV4Y2VwdGlvbjogeyJsaW5lIjoxLCJjb2x1bW4iOjYx
fQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBh
biBvYmplY3QgKGV2YWx1YXRpbmcgJyh7fSkuYS5iJykKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAz
OiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICcoe30p
LmEuYicpCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgODogTm90Rm91bmRFcnJvcjogRE9NIEV4Y2Vw
dGlvbiA4OiBBbiBhdHRlbXB0IHdhcyBtYWRlIHRvIHJlZmVyZW5jZSBhIE5vZGUgaW4gYSBjb250
ZXh0IHdoZXJlIGl0IGRvZXMgbm90IGV4aXN0LgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI0OiBl
eGNlcHRpb24gaW4gaG9zdCBmdW5jdGlvbgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEzOiBleGNl
cHRpb24gc3RyaW5nCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTg6IFtvYmplY3QgT2JqZWN0XQor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBFcnJvcjogZXJyb3IgbWVzc2FnZQorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDE6IGNhdWdodCBpbmxpbmU6IHsibGluZSI6MSwiY29sdW1uIjozNn0KK0NP
TlNPTEUgTUVTU0FHRTogbGluZSAzODogY2F0Y2hOZXN0ZWQgY2F1Z2h0IGV4Y2VwdGlvbjogeyJs
aW5lIjozLCJjb2x1bW4iOjExLCJzb3VyY2VVUkwiOiJleGNlcHRpb24uanMifQorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDM4OiBjYXRjaE5lc3RlZCBjYXVnaHQgZXhjZXB0aW9uOiB7ImNvZGUiOjgs
Im5hbWUiOiJOb3RGb3VuZEVycm9yIiwibWVzc2FnZSI6Ik5vdEZvdW5kRXJyb3I6IERPTSBFeGNl
cHRpb24gOCIsImxpbmUiOjgsImNvbHVtbiI6MzAsInNvdXJjZVVSTCI6ImV4Y2VwdGlvbi5qcyJ9
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzg6IGNhdGNoTmVzdGVkIGNhdWdodCBleGNlcHRpb246
ICJleGNlcHRpb24gaW4gaG9zdCBmdW5jdGlvbiIKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzODog
Y2F0Y2hOZXN0ZWQgY2F1Z2h0IGV4Y2VwdGlvbjogImV4Y2VwdGlvbiBzdHJpbmciCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMzg6IGNhdGNoTmVzdGVkIGNhdWdodCBleGNlcHRpb246IHsibGluZSI6
MSwiY29sdW1uIjo2MX0KK0RlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIHVuY2F1Z2h0CisK
K0RlYnVnZ2VyLnNldFBhdXNlT25FeGNlcHRpb25zIC0gdW5jYXVnaHQKK1BBU1MgLSBkaWQgbm90
IHBhdXNlIG9uIG5vbi1leGNlcHRpb24gc3RhdGVtZW50cyBvciBjYXVnaHQgZXhjZXB0aW9uIHN0
YXRlbWVudHMKK1BhdXNlZCEKK1Jlc3VtZWQKK1BhdXNlZCEKK1Jlc3VtZWQKK1BhdXNlZCEKK1Jl
c3VtZWQKK1BhdXNlZCEKK1Jlc3VtZWQKK1BhdXNlZCEKK1Jlc3VtZWQKK1BhdXNlZCEKK1Jlc3Vt
ZWQKK1BhdXNlZCEKK1Jlc3VtZWQKK1BBU1MgLSBwYXVzZWQgZm9yIGVhY2ggdW5jYXVnaHQgZXhj
ZXB0aW9uCitQQVNTIC0gZGlkIG5vdCBwYXVzZSBvbiBub24tZXhjZXB0aW9uIHN0YXRlbWVudHMg
b3IgY2F1Z2h0IGV4Y2VwdGlvbiBzdGF0ZW1lbnRzCitQQVNTCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy11bmNhdWdodC5o
dG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldFBhdXNlT25FeGNlcHRpb25z
LXVuY2F1Z2h0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDZiMmIyNjcxNjE2ZTAyNGFlNmVkNDg1NjlkYWMw
YzcwN2IwY2ZmZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy11bmNhdWdodC5odG1sCkBAIC0wLDAgKzEsMTE1IEBA
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9y
L3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvZXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkK
K3sKKyAgICB2YXIgZXhwZWN0UGF1c2UgPSBmYWxzZTsKKworICAgIHZhciBzdGF0ZW1lbnRzV2l0
aG91dEV4Y2VwdGlvbnMgPSBbCisgICAgICAgICIxKzE7IiwKKyAgICAgICAgIm5vRXhjZXB0aW9u
KCk7IiwKKyAgICAgICAgImNhdGNoTmVzdGVkKG5vRXhjZXB0aW9uLCA3KTsiCisgICAgXTsKKwor
ICAgIHZhciBzdGF0ZW1lbnRzV2l0aENhdWdodEV4Y2VwdGlvbnMgPSBbCisgICAgICAgICJ0cnl7
ICh7fSkuYS5iLmMuZCB9IGNhdGNoIChlKSB7IGNvbnNvbGUubG9nKCdjYXVnaHQgaW5saW5lOiAn
ICsgSlNPTi5zdHJpbmdpZnkoZSkpOyB9IiwKKyAgICAgICAgImNhdGNoTmVzdGVkKGV4Y2VwdGlv
bkJhc2ljLCAxKTsiLAorICAgICAgICAiY2F0Y2hOZXN0ZWQoZXhjZXB0aW9uRE9NLCAyKTsiLAor
ICAgICAgICAiY2F0Y2hOZXN0ZWQoZXhjZXB0aW9uSW5Ib3N0RnVuY3Rpb24sIDMpOyIsCisgICAg
ICAgICJjYXRjaE5lc3RlZCh0aHJvd1N0cmluZywgMTApOyIsCisgICAgICAgICJjYXRjaE5lc3Rl
ZCh0aHJvd1BhcmFtLCA1LCBuZXcgRXJyb3IoJ2Vycm9yIG1lc3NhZ2UnKSk7IgorICAgIF07CisK
KyAgICB2YXIgY3VycmVudFVuY2F1Z2h0RXhjZXB0aW9uU3RhdGVtZW50ID0gMDsKKyAgICB2YXIg
c3RhdGVtZW50c1dpdGhVbmNhdWdodEV4Y2VwdGlvbnMgPSBbCisgICAgICAgICIoe30pLmEuYi5j
LmQ7IiwKKyAgICAgICAgImV4Y2VwdGlvbkJhc2ljKCk7IiwKKyAgICAgICAgImV4Y2VwdGlvbkRP
TSgpOyIsCisgICAgICAgICJleGNlcHRpb25Jbkhvc3RGdW5jdGlvbigpOyIsCisgICAgICAgICJ0
aHJvd1N0cmluZygpOyIsCisgICAgICAgICJ0aHJvd1BhcmFtKHt4OjF9KTsiLAorICAgICAgICAi
dGhyb3dQYXJhbShuZXcgRXJyb3IoJ2Vycm9yIG1lc3NhZ2UnKSk7IgorICAgIF07CisKKyAgICAv
LyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEyMTEwOD4gV2ViIEluc3BlY3RvciBnZXRz
IHBhdXNlZCB0d2ljZSB3aGVuIHRoZXJlIGlzIGFuIGV4Y2VwdGlvbiBpbiBob3N0IGZ1bmN0aW9u
CisgICAgdmFyIGV4dHJhUGF1c2VzID0gMDsKKworICAgIGZ1bmN0aW9uIGV2YWx1YXRlU3RhdGVt
ZW50cyhsaXN0LCBjYWxsYmFjaykKKyAgICB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
bGlzdC5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFyIHN0YXRlbWVudCA9IGxpc3RbaV07
CisgICAgICAgICAgICB2YXIgbGFzdCA9IGkgPT09IGxpc3QubGVuZ3RoIC0gMTsKKyAgICAgICAg
ICAgIHZhciByZXNwb25zZUNhbGxiYWNrID0gbGFzdCA/IGZ1bmN0aW9uKCkgeyBzZXRUaW1lb3V0
KGNhbGxiYWNrLCAxMCk7IH0gOiBmdW5jdGlvbigpe307CisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1l
b3V0KGZ1bmN0aW9uKCkgeyAiICsgc3RhdGVtZW50ICsgIiB9LCAwKTsifSwgcmVzcG9uc2VDYWxs
YmFjayk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBldmFsdWF0ZUV4cGVjdGVk
Tm9QYXVzZXMoY2FsbGJhY2spCisgICAgeworICAgICAgICB2YXIgc3RhdGVtZW50cyA9IHN0YXRl
bWVudHNXaXRob3V0RXhjZXB0aW9ucy5jb25jYXQoc3RhdGVtZW50c1dpdGhDYXVnaHRFeGNlcHRp
b25zKTsKKyAgICAgICAgZXZhbHVhdGVTdGF0ZW1lbnRzKHN0YXRlbWVudHMsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1MgLSBkaWQgbm90IHBhdXNlIG9u
IG5vbi1leGNlcHRpb24gc3RhdGVtZW50cyBvciBjYXVnaHQgZXhjZXB0aW9uIHN0YXRlbWVudHMi
KTsKKyAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIGZ1
bmN0aW9uIHRyaWdnZXJOZXh0VW5jYXVnaHRFeGNlcHRpb24oKQorICAgIHsKKyAgICAgICAgLy8g
RXZhbHVhdGUgc3RhdGVtZW50IGFuZCBleHBlY3QgdG8gcGF1c2UuCisgICAgICAgIGlmIChjdXJy
ZW50VW5jYXVnaHRFeGNlcHRpb25TdGF0ZW1lbnQgPCBzdGF0ZW1lbnRzV2l0aFVuY2F1Z2h0RXhj
ZXB0aW9ucy5sZW5ndGgpIHsKKyAgICAgICAgICAgIHZhciBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnRz
V2l0aFVuY2F1Z2h0RXhjZXB0aW9uc1tjdXJyZW50VW5jYXVnaHRFeGNlcHRpb25TdGF0ZW1lbnQr
K107CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1
YXRlIiwge2V4cHJlc3Npb246ICJzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyAiICsgc3RhdGVtZW50
ICsgIiB9LCAwKTsifSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAg
ICAvLyBGSVhNRTogPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEyMTEwOD4gV2ViIEluc3BlY3RvciBn
ZXRzIHBhdXNlZCB0d2ljZSB3aGVuIHRoZXJlIGlzIGFuIGV4Y2VwdGlvbiBpbiBob3N0IGZ1bmN0
aW9uCisgICAgICAgIGlmIChleHRyYVBhdXNlcy0tID4gMCkKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICAvLyBEb25lIGV2YWx1YXRpbmcgc3RhdGVtZW50cyB0byBwYXVzZS4gRXZhbHVh
dGUgc29tZSBtb3JlIHdlIGRvIG5vdCBleHBlY3QgdG8gcGF1c2UuCisgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJQQVNTIC0gcGF1c2VkIGZvciBlYWNoIHVuY2F1Z2h0IGV4Y2VwdGlvbiIpOwor
ICAgICAgICBleHBlY3RQYXVzZSA9IGZhbHNlOworICAgICAgICBldmFsdWF0ZUV4cGVjdGVkTm9Q
YXVzZXMoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUyIp
OworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgfSk7
CisgICAgfQorCisKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFi
bGUiLCB7fSk7CisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0UGF1
c2VPbkV4Y2VwdGlvbnMiLCB7c3RhdGU6ICJ1bmNhdWdodCJ9LCBmdW5jdGlvbihyZXNwb25zZU9i
amVjdCkgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVzcG9uc2VPYmpl
Y3QpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRGVidWdnZXIuc2V0UGF1c2VPbkV4Y2Vw
dGlvbnMgLSB1bmNhdWdodCIpOworICAgICAgICBldmFsdWF0ZUV4cGVjdGVkTm9QYXVzZXMoZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICBleHBlY3RQYXVzZSA9IHRydWU7CisgICAgICAgICAgICB0
cmlnZ2VyTmV4dFVuY2F1Z2h0RXhjZXB0aW9uKCk7CisgICAgICAgIH0pOworICAgIH0pOworCisg
ICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVnZ2VyLnBhdXNlZCJdID0gZnVuY3Rp
b24obWVzc2FnZU9iamVjdCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQYXVz
ZWQhIik7CisKKyAgICAgICAgaWYgKCFleHBlY3RQYXVzZSkgeworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIkZBSUwgLSBkZWJ1Z2dlciBwYXVzZWQgd2hlbiB3ZSBkaWQgbm90IGV4cGVj
dCB0byIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENv
bW1hbmQoIkRlYnVnZ2VyLnJlc3VtZSIsIHt9KTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0
LmV2ZW50SGFuZGxlclsiRGVidWdnZXIucmVzdW1lZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVj
dCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJSZXN1bWVkIik7CisgICAgICAg
IHRyaWdnZXJOZXh0VW5jYXVnaHRFeGNlcHRpb24oKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPkRlYnVnZ2VyLnNldFBhdXNlT25F
eGNlcHRpb25zIHVuY2F1Z2h0PC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldFZhcmlhYmxlVmFsdWUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NldFZhcmlhYmxlVmFsdWUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ2OWMwOTYxYmNkY2ZiMWIyZDQzMzc1MGE5NzA5MTVhOGI1YjFh
NzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2V0
VmFyaWFibGVWYWx1ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitDbG9zdXJlIHJldHVy
bnM6IHsidHlwZSI6InN0cmluZyIsInZhbHVlIjoidHR0dHJ1ZTUyMDEzIn0KKyAoZXhwZWN0ZWQ6
ICd0dHR0cnVlNTIwMTMnKQorUHJvdG9jb2wgY29tbWFuZCAnRGVidWdnZXIuc2V0VmFyaWFibGVW
YWx1ZScgZmFpbGVkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9zZXRWYXJpYWJsZVZhbHVlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
c2V0VmFyaWFibGVWYWx1ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiMGNjNjk0YzRhYmIwOWFjODM5ZTJi
Y2NlODk2ZTliZTgwZDdlNTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvZGVidWdnZXIvc2V0VmFyaWFibGVWYWx1ZS5odG1sCkBAIC0wLDAgKzEsMTgwIEBACis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIC8vIEEgZ2VuZXJhbC1wdXJwb3NlIGVu
Z2luZSBmb3Igc2VuZGluZyBhIHNlcXVlbmNlIG9mIHByb3RvY29sIGNvbW1hbmRzLgorICAgIC8v
IFRoZSBjbGllbnRzIHByb3ZpZGUgcmVxdWVzdHMgYW5kIHJlc3BvbnNlIGhhbmRsZXJzLCB3aGls
ZSB0aGUgZW5naW5lIGNhdGNoZXMKKyAgICAvLyBlcnJvcnMgYW5kIG1ha2VzIHN1cmUgdGhhdCBv
bmNlIHRoZXJlJ3Mgbm90aGluZyB0byBkbyBjb21wbGV0ZVRlc3QoKSBpcyBjYWxsZWQuCisgICAg
Ly8gQHBhcmFtIHN0ZXAgaXMgYW4gb2JqZWN0IHdpdGggY29tbWFuZCwgcGFyYW1zIGFuZCBjYWxs
YmFjayBmaWVsZHMKKyAgICBmdW5jdGlvbiBydW5SZXF1ZXN0U2VyaWVzKHN0ZXApIHsKKyAgICAg
ICAgcHJvY2Vzc1N0ZXAoc3RlcCk7CisKKyAgICAgICAgZnVuY3Rpb24gcHJvY2Vzc1N0ZXAocykg
eworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBwcm9jZXNzU3RlcE9yRmFpbChz
KTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZyhlLnN0YWNrKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRl
VGVzdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcHJv
Y2Vzc1N0ZXBPckZhaWwocykgeworICAgICAgICAgICAgaWYgKCFzKSB7CisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIXMuY29tbWFuZCkgeworICAgICAgICAg
ICAgICAgIC8vIEEgc2ltcGxlIGxvb3BiYWNrIHN0ZXAuCisgICAgICAgICAgICAgICAgdmFyIG5l
eHQgPSBzLmNhbGxiYWNrKCk7CisgICAgICAgICAgICAgICAgcHJvY2Vzc1N0ZXAobmV4dCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2YXIg
aW5uZXJDYWxsYmFjayA9IGZ1bmN0aW9uKHJlc3BvbnNlKSB7CisgICAgICAgICAgICAgICAgdmFy
IG5leHQ7CisgICAgICAgICAgICAgICAgaWYgKCJlcnJvciIgaW4gcmVzcG9uc2UpIHsKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCEoImVycm9ySGFuZGxlciIgaW4gcykpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIEVycm9yIG1lc3NhZ2UgaXMgbm90IGxvZ2dlZCBpbnRlbnRpb25hbGx5
LCBpdCBtYXkgYmUgcGxhdGZvcm0tc3BlY2lmaWMuCisgICAgICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygiUHJvdG9jb2wgY29tbWFuZCAnIiArIHMuY29tbWFuZCArICInIGZh
aWxlZCIpOworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRl
c3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICAgICAg
bmV4dCA9IHMuZXJyb3JIYW5kbGVyKHJlc3BvbnNlLmVycm9yKTsKKyAgICAgICAgICAgICAgICAg
ICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coZS5zdGFjayk7CisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBs
ZXRlVGVzdCgpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAg
dHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIG5leHQgPSBzLmNhbGxiYWNrKHJlc3BvbnNl
LnJlc3VsdCk7CisgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKGUuc3RhY2spOworICAgICAgICAgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICBwcm9jZXNzU3RlcChuZXh0KTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQocy5jb21tYW5kLCBzLnBhcmFtcywgaW5u
ZXJDYWxsYmFjayk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB2YXIgZmlyc3RTdGVwID0geyBj
YWxsYmFjazogZW5hYmxlRGVidWdnZXIgfTsKKworICAgIHJ1blJlcXVlc3RTZXJpZXMoZmlyc3RT
dGVwKTsKKworICAgIGZ1bmN0aW9uIGVuYWJsZURlYnVnZ2VyKCkgeworICAgICAgICByZXR1cm4g
eyBjb21tYW5kOiAiRGVidWdnZXIuZW5hYmxlIiwgcGFyYW1zOiB7fSwgY2FsbGJhY2s6IGV2YWxG
dW5jdGlvbiB9OworICAgIH0KKworICAgIC8vIFRlc3RpbmcgZnVuY3Rpb24vY2xvc3VyZSBzY29w
ZXMuCisKKyAgICBmdW5jdGlvbiBldmFsRnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAgdmFy
IGV4cHJlc3Npb24gPSAiKGZ1bmN0aW9uKHApe3ZhciByPTU7d2l0aCh7eWVhcjoyMDEzfSl7cmV0
dXJuIGZ1bmN0aW9uIENsb3N1cmUocSl7cmV0dXJuIHArcStyK3llYXJ9O319KSgndHR0JykiOwor
ICAgICAgICByZXR1cm4geyBjb21tYW5kOiAiUnVudGltZS5ldmFsdWF0ZSIsIHBhcmFtczoge2V4
cHJlc3Npb246IGV4cHJlc3Npb259LCBjYWxsYmFjazogY2FsbGJhY2tFdmFsRnVuY3Rpb24gfTsK
KyAgICB9CisKKyAgICBmdW5jdGlvbiBjYWxsYmFja0V2YWxGdW5jdGlvbihyZXN1bHQpIHsKKyAg
ICAgICAgdmFyIGlkID0gcmVzdWx0LnJlc3VsdC5vYmplY3RJZDsKKyAgICAgICAgaWYgKGlkID09
PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm9iamVjdElkIGlzIGV4
cGVjdGVkIik7CisgICAgICAgIHJldHVybiBjcmVhdGVDaGVja0Z1bmN0aW9uU3RlcENoYWluKGlk
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjcmVhdGVDaGVja0Z1bmN0aW9uU3RlcENoYWluKGZ1
bmN0aW9uT2JqZWN0SWQpIHsKKyAgICAgICAgdmFyIHBhcmFtcyA9IHsKKyAgICAgICAgICAgIG9i
amVjdElkOiBmdW5jdGlvbk9iamVjdElkLAorICAgICAgICAgICAgZnVuY3Rpb25EZWNsYXJhdGlv
bjogImZ1bmN0aW9uKCl7cmV0dXJuIHRoaXModHJ1ZSk7fSIKKyAgICAgICAgfTsKKyAgICAgICAg
cmV0dXJuIHsKKyAgICAgICAgICAgIGNvbW1hbmQ6ICJSdW50aW1lLmNhbGxGdW5jdGlvbk9uIiwg
cGFyYW1zOiBwYXJhbXMsIGNhbGxiYWNrOiBjYWxsYmFja0xvZ0Nsb3N1cmVFdmFsCisgICAgICAg
IH07CisKKyAgICAgICAgZnVuY3Rpb24gY2FsbGJhY2tMb2dDbG9zdXJlRXZhbChyZXN1bHQpIHsK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJDbG9zdXJlIHJldHVybnM6ICIgKyBKU09O
LnN0cmluZ2lmeShyZXN1bHQucmVzdWx0KSk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lmxv
ZygiIChleHBlY3RlZDogJ3R0dHRydWU1MjAxMycpIik7CisKKyAgICAgICAgICAgIHZhciBwYXJh
bXMgPSB7CisgICAgICAgICAgICAgICAgZnVuY3Rpb25PYmplY3RJZDogZnVuY3Rpb25PYmplY3RJ
ZCwKKyAgICAgICAgICAgICAgICBzY29wZU51bWJlcjogMSwKKyAgICAgICAgICAgICAgICB2YXJp
YWJsZU5hbWU6ICJyIiwKKyAgICAgICAgICAgICAgICBuZXdWYWx1ZTogeyB2YWx1ZTogNCB9Cisg
ICAgICAgICAgICB9OworICAgICAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgICAgICBjb21t
YW5kOiAiRGVidWdnZXIuc2V0VmFyaWFibGVWYWx1ZSIsIHBhcmFtczogcGFyYW1zLCBjYWxsYmFj
azogc2V0VmFyaWFibGVDYWxsYmFjaworICAgICAgICAgICAgfTsKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIHNldFZhcmlhYmxlQ2FsbGJhY2soKSB7CisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiRGVidWdnZXIuc2V0VmFyaWFibGVWYWx1ZSBPSyIpOworCisgICAgICAgICAg
ICB2YXIgcGFyYW1zID0geworICAgICAgICAgICAgICAgIG9iamVjdElkOiBmdW5jdGlvbk9iamVj
dElkLAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uRGVjbGFyYXRpb246ICJmdW5jdGlvbigpe3Jl
dHVybiB0aGlzKHRydWUpO30iCisgICAgICAgICAgICB9OworICAgICAgICAgICAgcmV0dXJuIHsK
KyAgICAgICAgICAgICAgICBjb21tYW5kOiAiUnVudGltZS5jYWxsRnVuY3Rpb25PbiIsIHBhcmFt
czogcGFyYW1zLCBjYWxsYmFjazogY2FsbGJhY2tMb2dDbG9zdXJlRXZhbDIKKyAgICAgICAgICAg
IH07CisKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrTG9nQ2xvc3VyZUV2
YWwyKHJlc3VsdCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkNsb3N1cmUgcmV0
dXJuczogIiArIEpTT04uc3RyaW5naWZ5KHJlc3VsdC5yZXN1bHQpKTsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCIgKGV4cGVjdGVkOiAndHR0dHJ1ZTQyMDEzJykiKTsKKworICAgICAg
ICAgICAgdmFyIHBhcmFtcyA9IHsKKyAgICAgICAgICAgICAgICAvLyBObyB0YXJnZXQgaXMgc3Bl
Y2lmaWVkCisgICAgICAgICAgICAgICAgc2NvcGVOdW1iZXI6IDEsCisgICAgICAgICAgICAgICAg
dmFyaWFibGVOYW1lOiAiciIsCisgICAgICAgICAgICAgICAgbmV3VmFsdWU6IHsgdmFsdWU6IDQg
fQorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAgICAg
Y29tbWFuZDogIkRlYnVnZ2VyLnNldFZhcmlhYmxlVmFsdWUiLCBwYXJhbXM6IHBhcmFtcywgZXJy
b3JIYW5kbGVyOiBzZXRWYXJpYWJsZUVycm9yQ2FsbGJhY2szCisgICAgICAgICAgICB9OworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc2V0VmFyaWFibGVFcnJvckNhbGxiYWNrMyhlcnJv
cikgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkV4cGVjdGVkIGVycm9yOiAiICsg
SlNPTi5zdHJpbmdpZnkoZXJyb3IpKTsKKworICAgICAgICAgICAgdmFyIHBhcmFtcyA9IHsKKyAg
ICAgICAgICAgICAgICBmdW5jdGlvbk9iamVjdElkOiBmdW5jdGlvbk9iamVjdElkLAorICAgICAg
ICAgICAgICAgIHNjb3BlTnVtYmVyOiAxMDAsIC8vIFdyb25nIHNjb3BlIG51bWJlcgorICAgICAg
ICAgICAgICAgIHZhcmlhYmxlTmFtZTogInIiLAorICAgICAgICAgICAgICAgIG5ld1ZhbHVlOiB7
IHZhbHVlOiA0IH0KKyAgICAgICAgICAgIH07CisgICAgICAgICAgICByZXR1cm4geworICAgICAg
ICAgICAgICAgIGNvbW1hbmQ6ICJEZWJ1Z2dlci5zZXRWYXJpYWJsZVZhbHVlIiwgcGFyYW1zOiBw
YXJhbXMsIGVycm9ySGFuZGxlcjogc2V0VmFyaWFibGVFcnJvckNhbGxiYWNrNAorICAgICAgICAg
ICAgfTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHNldFZhcmlhYmxlRXJyb3JDYWxs
YmFjazQoZXJyb3IpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFeHBlY3RlZCBl
cnJvciIpOworCisgICAgICAgICAgICB2YXIgcGFyYW1zID0geworICAgICAgICAgICAgICAgIGZ1
bmN0aW9uT2JqZWN0SWQ6IGZ1bmN0aW9uT2JqZWN0SWQsCisgICAgICAgICAgICAgICAgc2NvcGVO
dW1iZXI6IDEsCisgICAgICAgICAgICAgICAgdmFyaWFibGVOYW1lOiAiYmFkIiwgLy8gV3Jvbmcg
dmFyaWFibGUgbmFtZQorICAgICAgICAgICAgICAgIG5ld1ZhbHVlOiB7IHZhbHVlOiA0IH0KKyAg
ICAgICAgICAgIH07CisgICAgICAgICAgICByZXR1cm4geworICAgICAgICAgICAgICAgIGNvbW1h
bmQ6ICJEZWJ1Z2dlci5zZXRWYXJpYWJsZVZhbHVlIiwgcGFyYW1zOiBwYXJhbXMsIGVycm9ySGFu
ZGxlcjogc2V0VmFyaWFibGVFcnJvckNhbGxiYWNrNQorICAgICAgICAgICAgfTsKKyAgICAgICAg
fQorCisgICAgICAgIGZ1bmN0aW9uIHNldFZhcmlhYmxlRXJyb3JDYWxsYmFjazUoZXJyb3IpIHsK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFeHBlY3RlZCBlcnJvciIpOworCisgICAg
ICAgICAgICAvLyBFbmQgb2YgdGVzdC4KKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3Rlcm1pbmF0ZS1kZWRpY2F0ZWQtd29ya2VyLXdoaWxlLXBhdXNlZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGVybWluYXRlLWRlZGljYXRlZC13b3Jr
ZXItd2hpbGUtcGF1c2VkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNjhiYjBmZjI5ZDY3M2Iw
NmYxNDFiYjJjNjUwYzhiMWYzYzY1MDcyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3Rlcm1pbmF0ZS1kZWRpY2F0ZWQtd29ya2VyLXdoaWxlLXBhdXNl
ZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitUZXN0IHRoYXQgaW5zcGVjdGVkIHBhZ2Ug
d29uJ3QgY3Jhc2ggaWYgaW5zcGVjdGVkIHdvcmtlciBpcyB0ZXJtaW5hdGVkIHdoaWxlIGl0IGlz
IHBhdXNlZC4gVGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaC4KKworQnVnIDEwMTA2NS4K
K1N0YXJ0ZWQgd29ya2VyCitXb3JrZXIgY3JlYXRlZAorZGlkQ29ubmVjdFRvV29ya2VyCitXb3Jr
ZXIgcGF1c2VkCitTVUNDRVNTOiBEaWQgdGVybWluYXRlIHBhdXNlZCB3b3JrZXIKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Rlcm1pbmF0ZS1kZWRpY2F0ZWQt
d29ya2VyLXdoaWxlLXBhdXNlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L3Rlcm1pbmF0ZS1kZWRpY2F0ZWQtd29ya2VyLXdoaWxlLXBhdXNlZC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQ1YmMzZjc4ZjFkYjNiODRjNDVlYWU2OGQ4NWI2OWRiODY3YTViNWEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvdGVybWluYXRlLWRlZGljYXRlZC13
b3JrZXItd2hpbGUtcGF1c2VkLmh0bWwKQEAgLTAsMCArMSw2NyBAQAorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Cit2
YXIgd29ya2VyOworZnVuY3Rpb24gc3RhcnRXb3JrZXJBbmRSdW5UZXN0KCkKK3sKKyAgICB3b3Jr
ZXIgPSBuZXcgV29ya2VyKCJyZXNvdXJjZXMvZGVkaWNhdGVkLXdvcmtlci5qcyIpOworICAgIHdv
cmtlci5vbm1lc3NhZ2UgPSBmdW5jdGlvbihldmVudCkgeyB9OworICAgIHdvcmtlci5wb3N0TWVz
c2FnZSgxKTsKKyAgICBsb2coIlN0YXJ0ZWQgd29ya2VyIik7CisgICAgcnVuVGVzdCgpOworfQor
CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgd29ya2VySWQ7CisgICAgdmFyIHdvcmtlclJl
cXVlc3RJZCA9IDE7CisgICAgZnVuY3Rpb24gc2VuZENvbW1hbmRUb1dvcmtlcihtZXRob2QsIHBh
cmFtcykKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIldvcmtlci5z
ZW5kTWVzc2FnZVRvV29ya2VyIiwgeworICAgICAgICAgICAgIndvcmtlcklkIjogd29ya2VySWQs
CisgICAgICAgICAgICAibWVzc2FnZSI6IHsKKyAgICAgICAgICAgICAgICAibWV0aG9kIjogbWV0
aG9kLAorICAgICAgICAgICAgICAgICJwYXJhbXMiOiBwYXJhbXMsCisgICAgICAgICAgICAgICAg
ImlkIjogd29ya2VyUmVxdWVzdElkKysKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAg
fQorCisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiV29ya2VyLmVuYWJsZSIsIHt9LCBm
dW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7CisgICAgICAgIGlmICgiZXJyb3IiIGluIG1lc3NhZ2VP
YmplY3QpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiBDb3VsZG4ndCBl
bmFibGUgd29ya2VyIGRlYnVnZ2VyOiAiICsgbWVzc2FnZU9iamVjdC5lcnJvci5tZXNzYWdlKTsK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgIH0KKyAg
ICB9KTsKKworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJXb3JrZXIud29ya2VyQ3Jl
YXRlZCJdID0gZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKKyAgICB7CisgICAgICAgIHdvcmtlcklk
ID0gbWVzc2FnZU9iamVjdFsicGFyYW1zIl1bIndvcmtlcklkIl07CisgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJXb3JrZXIgY3JlYXRlZCIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRD
b21tYW5kKCJXb3JrZXIuY29ubmVjdFRvV29ya2VyIiwgeyJ3b3JrZXJJZCI6IHdvcmtlcklkfSwg
ZnVuY3Rpb24obWVzc2FnZU9iamVjdCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
ImRpZENvbm5lY3RUb1dvcmtlciIpOworICAgICAgICAgICAgc2VuZENvbW1hbmRUb1dvcmtlcigi
RGVidWdnZXIuZW5hYmxlIiwge30pOworICAgICAgICAgICAgc2VuZENvbW1hbmRUb1dvcmtlcigi
RGVidWdnZXIucGF1c2UiLCB7fSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIEluc3BlY3Rv
clRlc3QuZXZlbnRIYW5kbGVyWyJXb3JrZXIuZGlzcGF0Y2hNZXNzYWdlRnJvbVdvcmtlciJdID0g
ZnVuY3Rpb24obWVzc2FnZU9iamVjdCkKKyAgICB7CisgICAgICAgIHZhciBtZXNzYWdlID0gbWVz
c2FnZU9iamVjdFsicGFyYW1zIl1bIm1lc3NhZ2UiXTsKKyAgICAgICAgaWYgKG1lc3NhZ2VbIm1l
dGhvZCJdID09PSAiRGVidWdnZXIucGF1c2VkIikgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5sb2coIldvcmtlciBwYXVzZWQiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENv
bW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ImV4cHJlc3Npb24iOiAid29ya2VyLnRlcm1pbmF0
ZSgpIn0sIGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiU1VDQ0VTUzogRGlkIHRlcm1pbmF0ZSBwYXVzZWQgd29ya2VyIik7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbkxvYWQ9
InN0YXJ0V29ya2VyQW5kUnVuVGVzdCgpOyI+Cis8cD5UZXN0IHRoYXQgaW5zcGVjdGVkIHBhZ2Ug
d29uJ3QgY3Jhc2ggaWYgaW5zcGVjdGVkIHdvcmtlciBpcyB0ZXJtaW5hdGVkIHdoaWxlIGl0IGlz
IHBhdXNlZC4gVGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaC48L3A+Cis8YSBocmVmPSJo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMDY1Ij5CdWcgMTAxMDY1
LjwvYT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kb20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43MDlhYjYyNGQ3ZDk0ZTU0ZGFkNWZiYzY1YmM2MWQwNjdhMmJkNmMyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS1kZWJ1Z2dlci9ub2RlLXJlbW92ZWQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorVGVzdGluZyB0aGF0IERPTS5jaGlsZE5vZGVSZW1v
dmVkIGlzIGNvcnJlY3RseSB0cmlnZ2VyZWQgZXZlbiB3aGVuIHRoZSBlbGVtZW50IGlzIG1vdmVk
IHdoaWxlIHBhdXNlZCBpbiB0aGUgZGVidWdnZXIgb24gYSBET01EZWJ1Z2dlciAibm9kZS1yZW1v
dmVkIiBicmVha3BvaW50LgorCitGb3VuZCA8c2NyaXB0PgorU3RvcHBlZCBvbiBET00gYnJlYWtw
b2ludAorUEFTUzogb25DaGlsZE5vZGVSZW1vdmVkIGNhbGxlZCBmb3IgI3RhcmdldF9lbGVtZW50
CitQQVNTOiBvbkNoaWxkTm9kZUluc2VydGVkIGNhbGxlZCBmb3IgcGFyZW50IG5vZGUgI2ZpbmFs
X2NvbnRhaW5lcgorUEFTUzogb25DaGlsZE5vZGVJbnNlcnRlZCBjYWxsZWQgZm9yIGNoaWxkIG5v
ZGUgI3RhcmdldF9lbGVtZW50CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
b20tZGVidWdnZXIvbm9kZS1yZW1vdmVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9t
LWRlYnVnZ2VyL25vZGUtcmVtb3ZlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4ODBmMTEzOTc5ZTQ0NGE2
YzQ1ZTBhNGVkMmE3YTYxMmE5ZjFhNzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZG9tLWRlYnVnZ2VyL25vZGUtcmVtb3ZlZC5odG1sCkBAIC0wLDAgKzEsMTQzIEBA
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4v
Li4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KK3dpbmRvdy5vbmxvYWQgPSBydW5UZXN0OworCitmdW5jdGlvbiByZW1v
dmVOb2RlKCkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0X2VsZW1lbnQi
KS5yZW1vdmUoKTsKK30KKworZnVuY3Rpb24gbW92ZU5vZGUoKQoreworICAgIHZhciB0YXJnZXRF
bGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldF9lbGVtZW50Iik7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbmFsX2NvbnRhaW5lciIpLmFwcGVuZENoaWxkKHRh
cmdldEVsZW1lbnQpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB2YXIgbm9kZXNCeUlk
ID0ge307CisKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRE9NLnNldENoaWxkTm9k
ZXMiXSA9IG9uU2V0Q2hpbGROb2RlczsKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsi
RE9NLmNoaWxkTm9kZVJlbW92ZWQiXSA9IG9uQ2hpbGROb2RlUmVtb3ZlZDsKKyAgICBJbnNwZWN0
b3JUZXN0LmV2ZW50SGFuZGxlclsiRE9NLmNoaWxkTm9kZUluc2VydGVkIl0gPSBvbkNoaWxkTm9k
ZUluc2VydGVkOworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJEZWJ1Z2dlci5wYXVz
ZWQiXSA9IG9uRGVidWdnZXJQYXVzZWQ7CisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJb
IkRlYnVnZ2VyLnNjcmlwdFBhcnNlZCJdID0gb25TY3JpcHRQYXJzZWQ7CisgICAgCisgICAgZnVu
Y3Rpb24gY3JlYXRlTm9kZUF0dHJpYnV0ZXNNYXAoYXR0cmlidXRlcykKKyAgICB7CisgICAgICAg
IHZhciBhdHRyaWJ1dGVzTWFwID0ge307CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXR0
cmlidXRlcy5sZW5ndGg7IGkgKz0gMikKKyAgICAgICAgICAgIGF0dHJpYnV0ZXNNYXBbYXR0cmli
dXRlc1tpXV0gPSBhdHRyaWJ1dGVzW2kgKyAxXTsKKyAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZXNN
YXA7CisgICAgfQorCisgICAgZnVuY3Rpb24gY29sbGVjdE5vZGUobm9kZSkKKyAgICB7CisgICAg
ICAgIGlmIChub2RlLm5vZGVUeXBlID09PSAxKQorICAgICAgICAgICAgbm9kZS5hdHRyaWJ1dGVz
ID0gY3JlYXRlTm9kZUF0dHJpYnV0ZXNNYXAobm9kZS5hdHRyaWJ1dGVzKTsKKyAgICAgICAgaWYg
KG5vZGUuY2hpbGRyZW4pCisgICAgICAgICAgICBub2RlLmNoaWxkcmVuLmZvckVhY2goY29sbGVj
dE5vZGUpOworICAgICAgICBub2Rlc0J5SWRbbm9kZS5ub2RlSWRdID0gbm9kZTsKKyAgICB9CisK
KyAgICBmdW5jdGlvbiBub2RlVG9TdHJpbmcobm9kZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAo
bm9kZS5ub2RlVHlwZSkgeworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gbm9k
ZS5sb2NhbE5hbWUgKyAiIyIgKyBub2RlLmF0dHJpYnV0ZXMuaWQ7CisgICAgICAgIGNhc2UgMzoK
KyAgICAgICAgICAgIHJldHVybiAiPHRleHQgbm9kZSAiICsgSlNPTi5zdHJpbmdpZnkobm9kZS5u
b2RlVmFsdWUpICsgIj4iOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuICI8
bm9kZVR5cGUgIiArIG5vZGUubm9kZVR5cGUgKyAiPiI7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBnZXROb2RlSWRlbnRpZmllcihub2RlSWQpCisgICAgeworICAgICAgICBpZiAo
IW5vZGVJZCkKKyAgICAgICAgICAgIHJldHVybiAiPGludmFsaWQgbm9kZSBpZD4iOworICAgICAg
ICB2YXIgbm9kZSA9IG5vZGVzQnlJZFtub2RlSWRdOworICAgICAgICByZXR1cm4gbm9kZSA/IG5v
ZGVUb1N0cmluZyhub2RlKSA6ICI8dW5rbm93biBub2RlPiI7CisgICAgfQorCisgICAgZnVuY3Rp
b24gb25TZXRDaGlsZE5vZGVzKHJlc3BvbnNlKQorICAgIHsKKyAgICAgICAgcmVzcG9uc2UucGFy
YW1zLm5vZGVzLmZvckVhY2goY29sbGVjdE5vZGUpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9u
Q2hpbGROb2RlUmVtb3ZlZChyZXNwb25zZSkKKyAgICB7CisgICAgICAgIHZhciBub2RlSWQgPSBy
ZXNwb25zZS5wYXJhbXMubm9kZUlkOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChnZXRO
b2RlSWRlbnRpZmllcihub2RlSWQpID09PSAiZGl2I3RhcmdldF9lbGVtZW50IiwgIm9uQ2hpbGRO
b2RlUmVtb3ZlZCBjYWxsZWQgZm9yICN0YXJnZXRfZWxlbWVudCIpOworICAgICAgICBkZWxldGUg
bm9kZXNCeUlkW25vZGVJZF07CisgICAgfQorCisgICAgZnVuY3Rpb24gb25DaGlsZE5vZGVJbnNl
cnRlZChyZXNwb25zZSkKKyAgICB7CisgICAgICAgIGNvbGxlY3ROb2RlKHJlc3BvbnNlLnBhcmFt
cy5ub2RlKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZ2V0Tm9kZUlkZW50aWZpZXIo
cmVzcG9uc2UucGFyYW1zLnBhcmVudE5vZGVJZCkgPT09ICJkaXYjZmluYWxfY29udGFpbmVyIiwg
Im9uQ2hpbGROb2RlSW5zZXJ0ZWQgY2FsbGVkIGZvciBwYXJlbnQgbm9kZSAjZmluYWxfY29udGFp
bmVyIik7CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGdldE5vZGVJZGVudGlmaWVyKHJl
c3BvbnNlLnBhcmFtcy5ub2RlLm5vZGVJZCkgPT09ICJkaXYjdGFyZ2V0X2VsZW1lbnQiLCAib25D
aGlsZE5vZGVJbnNlcnRlZCBjYWxsZWQgZm9yIGNoaWxkIG5vZGUgI3RhcmdldF9lbGVtZW50Iik7
CisgICAgfQorCisgICAgZnVuY3Rpb24gb25EZWJ1Z2dlclBhdXNlZChyZXNwb25zZSkKKyAgICB7
ICAgCisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJTdG9wcGVkIG9uIERPTSBicmVha3BvaW50
Iik7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUi
LCB7ImV4cHJlc3Npb24iOiAibW92ZU5vZGUoKSJ9LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnJlc3VtZSIpOworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gb25TY3JpcHRQYXJzZWQobWVzc2FnZU9iamVjdCkKKyAgICB7CisgICAgICAg
IC8vIEZJWE1FOiBUaGUgRE9NIGJyZWFrcG9pbnRzIGFyZSBub3Qgd29ya2luZyB1bmxlc3MgdGhl
cmUncyBhIEpTIGJyYWtwb2ludCBzZXQuIFNldHRpbmcgYSBmYWtlIGJyZWFrcG9pbnQgdG8gd29y
a2Fyb3VuZCB0aGF0LgorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTIzNzcwIAorICAgICAgICBpZiAoL25vZGUtcmVtb3ZlZFwuaHRtbCQvLnRlc3Qo
bWVzc2FnZU9iamVjdC5wYXJhbXMudXJsKSAmJiBtZXNzYWdlT2JqZWN0LnBhcmFtcy5zdGFydExp
bmUgPiAyMCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRlYnVn
Z2VyLnNjcmlwdFBhcnNlZCJdID0gbnVsbDsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJGb3VuZCA8c2NyaXB0PiIpOworICAgICAgICAgICAgdmFyIGxvY2F0aW9uID0ge3NjcmlwdElk
OiBtZXNzYWdlT2JqZWN0LnBhcmFtcy5zY3JpcHRJZCwgbGluZU51bWJlcjogbWVzc2FnZU9iamVj
dC5wYXJhbXMuc3RhcnRMaW5lICsgMiwgY29sdW1uTnVtYmVyOiAwfTsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnNldEJyZWFrcG9pbnQiLCB7bG9jYXRp
b246IGxvY2F0aW9ufSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5zZW5kQ29tbWFuZCgiRE9NLmdldERvY3VtZW50Iiwge30sIG9uR290RG9jdW1lbnQpOworICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBvbkdvdERvY3Vt
ZW50KHJlc3BvbnNlKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9y
KHJlc3BvbnNlKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRE9NLnF1ZXJ5
U2VsZWN0b3JBbGwiLCB7Im5vZGVJZCI6IHJlc3BvbnNlLnJlc3VsdC5yb290Lm5vZGVJZCwgInNl
bGVjdG9yIjogIiN0YXJnZXRfZWxlbWVudCwjZmluYWxfY29udGFpbmVyIn0sIG9uUXVlcnlTZWxl
Y3RvckFsbCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb25RdWVyeVNlbGVjdG9yQWxsKHJlc3Bv
bnNlKQorICAgIHsKKyAgICAgICAgdmFyIHRhcmdldEVsZW1lbnRJZCA9IHJlc3BvbnNlLnJlc3Vs
dC5ub2RlSWRzWzBdOworICAgICAgICB2YXIgZmluYWxDb250YWluZXJJZCA9IHJlc3BvbnNlLnJl
c3VsdC5ub2RlSWRzWzFdOworCisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRP
TURlYnVnZ2VyLnNldERPTUJyZWFrcG9pbnQiLCB7bm9kZUlkOiB0YXJnZXRFbGVtZW50SWQsIHR5
cGU6ICJub2RlLXJlbW92ZWQifSk7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IkRPTS5yZXF1ZXN0Q2hpbGROb2RlcyIsIHtub2RlSWQ6IGZpbmFsQ29udGFpbmVySWR9KTsKKwor
ICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwgeyJl
eHByZXNzaW9uIjogInJlbW92ZU5vZGUoKSJ9KTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJEZWJ1Z2dlci5lbmFibGUiLCB7fSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorCis8cD5UZXN0aW5nIHRoYXQgRE9NLmNoaWxkTm9kZVJlbW92ZWQgaXMgY29y
cmVjdGx5IHRyaWdnZXJlZCBldmVuIHdoZW4gdGhlIGVsZW1lbnQgaXMgbW92ZWQgd2hpbGUgcGF1
c2VkIGluIHRoZSBkZWJ1Z2dlciBvbiBhIERPTURlYnVnZ2VyICJub2RlLXJlbW92ZWQiIGJyZWFr
cG9pbnQuPC9wPgorCis8ZGl2IGlkPSJ0YXJnZXRfZWxlbWVudCI+PC9kaXY+Cis8ZGl2IGlkPSJm
aW5hbF9jb250YWluZXIiPjwvZGl2PgorCis8IS0tIFNjcmlwdCB0YWcgcmVxdWlyZWQgdG8gd29y
a2Fyb3VuZCBidWcgMTIzNzcwLiBTZWUgb25TY3JpcHRQYXJzZWQgZm9yIGRldGFpbHMuIC0tPgor
PHNjcmlwdD4vLyBMaW5lIDAKK2Z1bmN0aW9uIHRlc3RGdW5jdGlvbigpIHsgLy8gTGluZSAxCisg
ICAgY29uc29sZS5sb2coIkZBSUw6IFdvcmthcm91bmQgSlMgY29kZSBzaG91bGQgbm90IHJ1bi4i
KTsKK30KKzwvc2NyaXB0PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZG9tL2RvbS1yZW1vdmUtZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kb20vZG9tLXJlbW92ZS1ldmVudHMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjBjZjkzZmYzN2UyNjgwZDg5NDAxODg1MDkzYWRlMGM0ZGEzNmQ4YWMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2RvbS1yZW1vdmUtZXZlbnRzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1Rlc3RpbmcgdGhhdCBET00uY2hpbGROb2RlUmVt
b3ZlZCBpcyBjb3JyZWN0bHkgdHJpZ2dlcmVkIG9ubHkgd2hlbiB0aGUgZWxlbWVudCBpcyBhY3R1
YWxseSBnb2luZyB0byBiZSByZW1vdmVkIGZyb20gdGhlIERPTS4KKworUEFTUzogb25DaGlsZE5v
ZGVSZW1vdmVkIGNhbGxlZCBmb3IgI3RhcmdldF9lbGVtZW50CitQQVNTOiBvbkNoaWxkTm9kZUlu
c2VydGVkIGNhbGxlZCBmb3IgcGFyZW50IG5vZGUgI2ZpbmFsX2NvbnRhaW5lcgorUEFTUzogb25D
aGlsZE5vZGVJbnNlcnRlZCBjYWxsZWQgZm9yIGNoaWxkIG5vZGUgI3RhcmdldF9lbGVtZW50CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZG9tLXJlbW92ZS1ldmVudHMu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZG9tLXJlbW92ZS1ldmVudHMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45OTVmZWI0ZmRjMzgxMmM0MTcxZDJhMjU1MzJlYTUwYTBiOTRlOGQzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9kb20tcmVtb3ZlLWV2ZW50
cy5odG1sCkBAIC0wLDAgKzEsODggQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMv
cHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gbW92ZU5vZGUo
KQoreworICAgIHZhciB0ZXJnZXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRh
cmdldF9lbGVtZW50Iik7CisgICAgdGVyZ2V0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJET01O
b2RlUmVtb3ZlZCIsIGZ1bmN0aW9uKCkgeworICAgICAgICB0ZXJnZXRFbGVtZW50LnJlbW92ZUV2
ZW50TGlzdGVuZXIoIkRPTU5vZGVSZW1vdmVkIiwgYXJndW1lbnRzLmNhbGxlZSk7CisgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaW5hbF9jb250YWluZXIiKS5hcHBlbmRDaGlsZCh0
aGlzKTsKKyAgICB9KTsKKyAgICB0ZXJnZXRFbGVtZW50LnJlbW92ZSgpOworfQorCitmdW5jdGlv
biB0ZXN0KCkKK3sKKyAgICB2YXIgbm9kZXNCeUlkID0ge307CisKKyAgICBJbnNwZWN0b3JUZXN0
LmV2ZW50SGFuZGxlclsiRE9NLnNldENoaWxkTm9kZXMiXSA9IG9uU2V0Q2hpbGROb2RlczsKKyAg
ICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRE9NLmNoaWxkTm9kZVJlbW92ZWQiXSA9IG9u
Q2hpbGROb2RlUmVtb3ZlZDsKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRE9NLmNo
aWxkTm9kZUluc2VydGVkIl0gPSBvbkNoaWxkTm9kZUluc2VydGVkOworCisgICAgZnVuY3Rpb24g
Y3JlYXRlTm9kZUF0dHJpYnV0ZXNNYXAobm9kZSkKKyAgICB7CisgICAgICAgIHZhciBhdHRyaWJ1
dGVzID0ge307CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5hdHRyaWJ1dGVzLmxl
bmd0aDsgaSArPSAyKQorICAgICAgICAgICAgYXR0cmlidXRlc1tub2RlLmF0dHJpYnV0ZXNbaV1d
ID0gbm9kZS5hdHRyaWJ1dGVzW2kgKyAxXTsKKyAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZXM7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gY29sbGVjdE5vZGUobm9kZSkKKyAgICB7CisgICAgICAgIG5v
ZGVzQnlJZFtub2RlLm5vZGVJZF0gPSBjcmVhdGVOb2RlQXR0cmlidXRlc01hcChub2RlKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBnZXROb2RlSWRlbnRpZmllcihub2RlSWQpCisgICAgeworICAg
ICAgICB2YXIgbm9kZSA9IG5vZGVzQnlJZFtub2RlSWRdOworICAgICAgICByZXR1cm4gbm9kZSA/
IG5vZGUuaWQgOiAiPHVua25vd24gbm9kZT4iOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9uU2V0
Q2hpbGROb2RlcyhyZXNwb25zZSkKKyAgICB7CisgICAgICAgIHJlc3BvbnNlLnBhcmFtcy5ub2Rl
cy5mb3JFYWNoKGNvbGxlY3ROb2RlKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvbkNoaWxkTm9k
ZVJlbW92ZWQocmVzcG9uc2UpCisgICAgeworICAgICAgICB2YXIgbm9kZUlkID0gcmVzcG9uc2Uu
cGFyYW1zLm5vZGVJZDsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZ2V0Tm9kZUlkZW50
aWZpZXIobm9kZUlkKSA9PT0gInRhcmdldF9lbGVtZW50IiwgIm9uQ2hpbGROb2RlUmVtb3ZlZCBj
YWxsZWQgZm9yICN0YXJnZXRfZWxlbWVudCIpOworICAgICAgICBkZWxldGUgbm9kZXNCeUlkW25v
ZGVJZF07CisgICAgfQorCisgICAgZnVuY3Rpb24gb25DaGlsZE5vZGVJbnNlcnRlZChyZXNwb25z
ZSkKKyAgICB7CisgICAgICAgIGNvbGxlY3ROb2RlKHJlc3BvbnNlLnBhcmFtcy5ub2RlKTsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZ2V0Tm9kZUlkZW50aWZpZXIocmVzcG9uc2UucGFy
YW1zLnBhcmVudE5vZGVJZCkgPT09ICJmaW5hbF9jb250YWluZXIiLCAib25DaGlsZE5vZGVJbnNl
cnRlZCBjYWxsZWQgZm9yIHBhcmVudCBub2RlICNmaW5hbF9jb250YWluZXIiKTsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnQoZ2V0Tm9kZUlkZW50aWZpZXIocmVzcG9uc2UucGFyYW1zLm5v
ZGUubm9kZUlkKSA9PT0gInRhcmdldF9lbGVtZW50IiwgIm9uQ2hpbGROb2RlSW5zZXJ0ZWQgY2Fs
bGVkIGZvciBjaGlsZCBub2RlICN0YXJnZXRfZWxlbWVudCIpOworICAgIH0KKworICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIkRPTS5nZXREb2N1bWVudCIsIHt9LCBvbkdvdERvY3VtZW50
KTsKKworICAgIGZ1bmN0aW9uIG9uR290RG9jdW1lbnQobXNnKQorICAgIHsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKG1zZyk7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2Vu
ZENvbW1hbmQoIkRPTS5xdWVyeVNlbGVjdG9yIiwgeyJub2RlSWQiOiBtc2cucmVzdWx0LnJvb3Qu
bm9kZUlkLCAic2VsZWN0b3IiOiAiI2ZpbmFsX2NvbnRhaW5lciJ9LCBvblF1ZXJ5U2VsZWN0b3Ip
OworICAgIH0KKworICAgIGZ1bmN0aW9uIG9uUXVlcnlTZWxlY3RvcihyZXNwb25zZSkKKyAgICB7
CisgICAgICAgIC8vIE1ha2Ugc3VyZSB3ZSByZWNlaXZlIHRoZSBjaGlsZHJlbiBvZiB0aGUgIiNm
aW5hbF9jb250YWluZXIiIGFzIHRoZXkgYXJlIGFkZGVkLgorICAgICAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJET00ucmVxdWVzdENoaWxkTm9kZXMiLCB7bm9kZUlkOiByZXNwb25zZS5y
ZXN1bHQubm9kZUlkfSk7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRp
bWUuZXZhbHVhdGUiLCB7ImV4cHJlc3Npb24iOiAibW92ZU5vZGUoKSJ9LCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgIH0pOwor
ICAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgor
Cis8cD5UZXN0aW5nIHRoYXQgRE9NLmNoaWxkTm9kZVJlbW92ZWQgaXMgY29ycmVjdGx5IHRyaWdn
ZXJlZCBvbmx5IHdoZW4gdGhlIGVsZW1lbnQgaXMgYWN0dWFsbHkgZ29pbmcgdG8gYmUgcmVtb3Zl
ZCBmcm9tIHRoZSBET00uPC9wPgorCis8ZGl2IGlkPSJ0YXJnZXRfZWxlbWVudCI+PC9kaXY+Cis8
ZGl2IGlkPSJmaW5hbF9jb250YWluZXIiPjwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2RvbS1zZWFyY2gtY3Jhc2gtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9kb20tc2VhcmNoLWNyYXNoLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yNjMxZTFjMDEwNTYwZGU1ZmUxNDNkMGY2N2M3NDU1MjNhOTRj
ZTQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9kb20tc2Vh
cmNoLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Rlc3RzIHRoYXQgZWxlbWVu
dHMgcGFuZWwgc2VhcmNoIGlzIG5vdCBjcmFzaGluZyBvbiBkb2N1bWVudEVsZW1lbnQtbGVzcyBj
YXNlcy4KKworCitQQVNTOiBUZXN0IHBhc3NlcyBpZiBpdCBkb2Vzbid0IGNyYXNoLgorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2RvbS1zZWFyY2gtY3Jhc2guaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZG9tLXNlYXJjaC1jcmFzaC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmZhMDEwYTRmNGIyNTYyZjg1MTE2NmMzNjU0MDg2ZDQzOTZkNDdiMDgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2RvbS1zZWFyY2gtY3Jhc2guaHRtbApA
QCAtMCwwICsxLDI3IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29s
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRPTS5nZXREb2N1bWVudCIsIHt9LCBvbkdvdERvY3Vt
ZW50KTsKKworICAgIGZ1bmN0aW9uIG9uR290RG9jdW1lbnQobWVzc2FnZSkgeworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IobWVzc2FnZSk7CisgICAgICAgIEluc3BlY3RvclRl
c3Quc2VuZENvbW1hbmQoIkRPTS5wZXJmb3JtU2VhcmNoIiwge3F1ZXJ5OiAiRm9vQmFyIn0sIG9u
U2VhcmNoQ29tcGxldGVkKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvblNlYXJjaENvbXBsZXRl
ZChtZXNzYWdlKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKG1l
c3NhZ2UpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogVGVzdCBwYXNzZXMgaWYg
aXQgZG9lc24ndCBjcmFzaC4iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdHMgdGhhdCBl
bGVtZW50cyBwYW5lbCBzZWFyY2ggaXMgbm90IGNyYXNoaW5nIG9uIGRvY3VtZW50RWxlbWVudC1s
ZXNzIGNhc2VzLjwvcD4KKzxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvZG9tLXNlYXJjaC1jcmFzaC1p
ZnJhbWUuaHRtbCIgb25sb2FkPSJydW5UZXN0KCkiPjwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9kb20tc2VhcmNoLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZG9tLXNlYXJjaC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDU3YWUwYzQzOWQ1MGMyMzZmYjU3NmZkYjhiOTMyZDRlMmFlMjYzMwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZG9tLXNlYXJjaC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw3OCBAQAorVGVzdGluZyBET00ucGVyZm9ybVNlYXJjaCB3
aXRoIG5vIHBhcmVudCBub2RlIGlkcy4KKworCis9PT0gUXVlcnk6ICJib2R5IiA9PT0KK0NvdW50
OiAyCitib2R5Lm1haW4tZnJhbWUKK2JvZHkuaW5zaWRlLWlmcmFtZQorPT09IFF1ZXJ5OiAiPGJv
ZHkiID09PQorQ291bnQ6IDIKK2JvZHkubWFpbi1mcmFtZQorYm9keS5pbnNpZGUtaWZyYW1lCis9
PT0gUXVlcnk6ICJib2R5PiIgPT09CitDb3VudDogMgorYm9keS5tYWluLWZyYW1lCitib2R5Lmlu
c2lkZS1pZnJhbWUKKz09PSBRdWVyeTogIjxib2R5PiIgPT09CitDb3VudDogMgorYm9keS5tYWlu
LWZyYW1lCitib2R5Lmluc2lkZS1pZnJhbWUKKz09PSBRdWVyeTogIjxCT0RZPiIgPT09CitDb3Vu
dDogMgorYm9keS5tYWluLWZyYW1lCitib2R5Lmluc2lkZS1pZnJhbWUKKz09PSBRdWVyeTogIm9u
bG9hZCIgPT09CitDb3VudDogMQorYm9keS5tYWluLWZyYW1lCis9PT0gUXVlcnk6ICJPTkxPQUQi
ID09PQorQ291bnQ6IDEKK2JvZHkubWFpbi1mcmFtZQorPT09IFF1ZXJ5OiAicnVuVGVzdCgpIiA9
PT0KK0NvdW50OiAxCitib2R5Lm1haW4tZnJhbWUKKz09PSBRdWVyeTogIlwicnVuVGVzdCgpIiA9
PT0KK0NvdW50OiAxCitib2R5Lm1haW4tZnJhbWUKKz09PSBRdWVyeTogIlwicnVuVGVzdCgpXCIi
ID09PQorQ291bnQ6IDEKK2JvZHkubWFpbi1mcmFtZQorPT09IFF1ZXJ5OiAicnVuVGVzdCgpXCIi
ID09PQorQ291bnQ6IDEKK2JvZHkubWFpbi1mcmFtZQorPT09IFF1ZXJ5OiAiUlVOVEVTVCgpIiA9
PT0KK0NvdW50OiAxCitib2R5Lm1haW4tZnJhbWUKKz09PSBRdWVyeTogInJ1bnRlc3QoKSIgPT09
CitDb3VudDogMQorYm9keS5tYWluLWZyYW1lCis9PT0gUXVlcnk6ICIuYm9keS1pbnNpZGUtaWZy
YW1lIiA9PT0KK0NvdW50OiAwCis9PT0gUXVlcnk6ICIqIiA9PT0KK0NvdW50OiAxMgoraHRtbAor
aGVhZAorc2NyaXB0CitzY3JpcHQKK2JvZHkubWFpbi1mcmFtZQorcAoraWZyYW1lCitodG1sLmlu
c2lkZS1pZnJhbWUKK2hlYWQuaW5zaWRlLWlmcmFtZQorYm9keS5pbnNpZGUtaWZyYW1lCitkaXYu
YmFzZTEuaW5zaWRlLWlmcmFtZQorcC5pbnNpZGUtaWZyYW1lCis9PT0gUXVlcnk6ICJCT0RZW09O
TE9BRF0iID09PQorQ291bnQ6IDEKK2JvZHkubWFpbi1mcmFtZQorPT09IFF1ZXJ5OiAiL2h0bWwv
Ym9keSIgPT09CitDb3VudDogMgorYm9keS5tYWluLWZyYW1lCitib2R5Lmluc2lkZS1pZnJhbWUK
Kz09PSBRdWVyeTogIi9odG1sL2JvZHkvQG9ubG9hZCIgPT09CitDb3VudDogMQorYm9keS5tYWlu
LWZyYW1lCis9PT0gUXVlcnk6ICIvSFRNTC9CT0RZIiA9PT0KK0NvdW50OiAyCitib2R5Lm1haW4t
ZnJhbWUKK2JvZHkuaW5zaWRlLWlmcmFtZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZG9tL2RvbS1zZWFyY2gtd2l0aC1jb250ZXh0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kb20vZG9tLXNlYXJjaC13aXRoLWNvbnRleHQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjk5ZTQ0MzE3NGFhNzQ0MjNhNjM3MDI4NGIwZWFjOGMyNGMzYTA3OTEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2RvbS1zZWFyY2gtd2l0aC1j
b250ZXh0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI1IEBACitUZXN0aW5nIERPTS5wZXJmb3Jt
U2VhcmNoIHdpdGggcGFyZW50IG5vZGUgaWRzLgorCisKKz09PSBRdWVyeTogInAiIGluIFtdID09
PQorQ291bnQ6IDAKKz09PSBRdWVyeTogInAiIGluIFsuYmFzZTFdID09PQorQ291bnQ6IDEKK3Au
YmFzZTEubWFpbi1mcmFtZQorPT09IFF1ZXJ5OiAicCIgaW4gWy5iYXNlMl0gPT09CitDb3VudDog
MQorcC5iYXNlMi5tYWluLWZyYW1lCis9PT0gUXVlcnk6ICJwIiBpbiBbLmJhc2UxLCAuYmFzZTJd
ID09PQorQ291bnQ6IDIKK3AuYmFzZTEubWFpbi1mcmFtZQorcC5iYXNlMi5tYWluLWZyYW1lCis9
PT0gUXVlcnk6ICJwIiBpbiBbaWZyYW1lXSA9PT0KK0NvdW50OiAxCitwLmluc2lkZS1pZnJhbWUK
Kz09PSBRdWVyeTogIi8vcCIgaW4gWy5iYXNlMV0gPT09CitDb3VudDogMQorcC5iYXNlMS5tYWlu
LWZyYW1lCis9PT0gUXVlcnk6ICIvL2RpdiIgaW4gWy5iYXNlMV0gPT09CitDb3VudDogMQorZGl2
LmJhc2UxCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZG9tLXNlYXJj
aC13aXRoLWNvbnRleHQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZG9tLXNlYXJj
aC13aXRoLWNvbnRleHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMGMyMmJiMTI2YjkzMDAyOTYyMjM5MjJh
Y2NmNGEyMzU2NTQ0NGYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RvbS9kb20tc2VhcmNoLXdpdGgtY29udGV4dC5odG1sCkBAIC0wLDAgKzEsMTI5IEBACis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIC8vIENyZWF0ZSBhIERPTSBsaXN0ZW5l
ciB0byBjb252ZXJ0IG5vZGVJZHMgdG8gdGFnIG5hbWVzLgorICAgIEluc3BlY3RvclRlc3QuaW1w
b3J0U2NyaXB0KCIuLi9kb20vcmVzb3VyY2VzL0luc3BlY3RvckRPTUxpc3RlbmVyLmpzIik7Cisg
ICAgdmFyIGRvbSA9IGNyZWF0ZURPTUxpc3RlbmVyKCk7CisKKyAgICAvLyBDYWNoaW5nIHRoZSBv
dXRwdXQgdG8gYXZvaWQgc2VhcmNoaW5nIHRocm91Z2ggdGhlIGxvZy4KKyAgICB2YXIgb3V0cHV0
ID0gW107CisgICAgdmFyIGRvY3VtZW50SWQ7CisgICAgdmFyIGRvbVNlYXJjaFF1ZXJpZXMgPSBb
CisgICAgICAgIHsKKyAgICAgICAgICAgIHF1ZXJ5OiAicCIsCisgICAgICAgICAgICBub2Rlczog
W10KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgcXVlcnk6ICJwIiwKKyAgICAg
ICAgICAgIG5vZGVzOiBbIi5iYXNlMSJdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAg
ICAgIHF1ZXJ5OiAicCIsCisgICAgICAgICAgICBub2RlczogWyIuYmFzZTIiXQorICAgICAgICB9
LAorICAgICAgICB7CisgICAgICAgICAgICBxdWVyeTogInAiLAorICAgICAgICAgICAgbm9kZXM6
IFsiLmJhc2UxIiwgIi5iYXNlMiJdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAg
IHF1ZXJ5OiAicCIsCisgICAgICAgICAgICBub2RlczogWyJpZnJhbWUiXQorICAgICAgICB9LAor
CisgICAgICAgIC8vIFhQYXRoIHNob3VsZCByZXR1cm4ganVzdCB0aGUgY2hpbGRyZW4gb2YgdGhl
IHNlbGVjdGVkIG5vZGVzLgorICAgICAgICB7CisgICAgICAgICAgICBxdWVyeTogIi8vcCIsCisg
ICAgICAgICAgICBub2RlczogWyIuYmFzZTEiXQorICAgICAgICB9LAorICAgICAgICB7CisgICAg
ICAgICAgICBxdWVyeTogIi8vZGl2IiwKKyAgICAgICAgICAgIG5vZGVzOiBbIi5iYXNlMSJdCisg
ICAgICAgIH0KKyAgICBdOworCisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRE9NLmdl
dERvY3VtZW50Iiwge30sIG9uR290RG9jdW1lbnQpOworCisgICAgZnVuY3Rpb24gb25Hb3REb2N1
bWVudChtZXNzYWdlKSB7CisgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihtZXNz
YWdlKTsKKyAgICAgICAgZG9tLmNvbGxlY3ROb2RlKG1lc3NhZ2UucmVzdWx0LnJvb3QpOworICAg
ICAgICBkb2N1bWVudElkID0gbWVzc2FnZS5yZXN1bHQucm9vdC5ub2RlSWQ7CisgICAgICAgIHBl
cmZvcm1TZWFyY2hlcyhkb21TZWFyY2hRdWVyaWVzLCB0ZXN0RmluaXNoZWQpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHBlcmZvcm1TZWFyY2hlcyhsaXN0LCBjYWxsYmFjaykKKyAgICB7CisgICAg
ICAgIGZ1bmN0aW9uIG5leHQoKSB7CisgICAgICAgICAgICBpZiAobGlzdC5sZW5ndGgpCisgICAg
ICAgICAgICAgICAgc2VhcmNoKGxpc3Quc2hpZnQoKSwgbmV4dCk7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgfQorICAgICAgICBuZXh0KCk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gc2VhcmNoKHF1ZXJ5RGF0YSwgY2FsbGJhY2spCisgICAg
eworICAgICAgICByZXNvbHZlU2VsZWN0b3JzKHF1ZXJ5RGF0YS5ub2RlcywgZnVuY3Rpb24obm9k
ZUlkcykgeworICAgICAgICAgICAgb3V0cHV0LnB1c2goIj09PSBRdWVyeTogIiArIEpTT04uc3Ry
aW5naWZ5KHF1ZXJ5RGF0YS5xdWVyeSkgKyAiIGluIFsiICsgcXVlcnlEYXRhLm5vZGVzLmpvaW4o
IiwgIikgKyAiXSA9PT0iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQo
IkRPTS5wZXJmb3JtU2VhcmNoIiwge3F1ZXJ5OiBxdWVyeURhdGEucXVlcnksIG5vZGVJZHM6IG5v
ZGVJZHN9LCBmdW5jdGlvbihtZXNzYWdlKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jaGVja0ZvckVycm9yKG1lc3NhZ2UpOworICAgICAgICAgICAgICAgIHByaW50U2VhcmNoUmVz
dWx0cyhtZXNzYWdlLnJlc3VsdCwgY2FsbGJhY2spOworICAgICAgICAgICAgfSk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJlc29sdmVTZWxlY3RvcnMobm9kZXMsIGNhbGxi
YWNrKQorICAgIHsKKyAgICAgICAgdmFyIHJlc3VsdHMgPSBuZXcgQXJyYXkobm9kZXMubGVuZ3Ro
KTsKKyAgICAgICAgdmFyIHJlbWFpbmluZyA9IG5vZGVzLmxlbmd0aDsKKyAgICAgICAgaWYgKCFy
ZW1haW5pbmcpCisgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2socmVzdWx0cyk7CisgICAgICAg
IG5vZGVzLmZvckVhY2goZnVuY3Rpb24oc2VsZWN0b3IsIGluZGV4KSB7CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJET00ucXVlcnlTZWxlY3RvciIsIHtub2RlSWQ6IGRv
Y3VtZW50SWQsIHNlbGVjdG9yOiBzZWxlY3Rvcn0sIGZ1bmN0aW9uKG1lc3NhZ2UpIHsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IobWVzc2FnZSk7CisgICAgICAg
ICAgICAgICAgcmVzdWx0c1tpbmRleF0gPSBtZXNzYWdlLnJlc3VsdC5ub2RlSWQ7CisgICAgICAg
ICAgICAgICAgaWYgKC0tcmVtYWluaW5nIDw9IDApCisgICAgICAgICAgICAgICAgICAgIGNhbGxi
YWNrKHJlc3VsdHMpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKworICAg
IGZ1bmN0aW9uIHByaW50U2VhcmNoUmVzdWx0cyhyZXN1bHRzLCBjYWxsYmFjaykKKyAgICB7Cisg
ICAgICAgIG91dHB1dC5wdXNoKCJDb3VudDogIiArIHJlc3VsdHMucmVzdWx0Q291bnQpOworICAg
ICAgICBpZiAoIXJlc3VsdHMucmVzdWx0Q291bnQpCisgICAgICAgICAgICByZXR1cm4gY2FsbGJh
Y2soKTsKKworICAgICAgICB2YXIgb3B0aW9ucyA9IHsic2VhcmNoSWQiOiByZXN1bHRzLnNlYXJj
aElkLCAiZnJvbUluZGV4IjogMCwgInRvSW5kZXgiOiByZXN1bHRzLnJlc3VsdENvdW50fTsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRE9NLmdldFNlYXJjaFJlc3VsdHMiLCBv
cHRpb25zLCBmdW5jdGlvbihtZXNzYWdlKSB7CisgICAgICAgICAgICBmb3IgKHZhciBub2RlSWQg
b2YgbWVzc2FnZS5yZXN1bHQubm9kZUlkcykKKyAgICAgICAgICAgICAgICBvdXRwdXQucHVzaChk
b20uZ2V0Tm9kZUlkZW50aWZpZXIobm9kZUlkKSk7CisgICAgICAgICAgICBjYWxsYmFjaygpOwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0RmluaXNoZWQoKQorICAgIHsK
KyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cob3V0cHV0LmpvaW4oIlxuIikpOworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiIGNsYXNzPSJtYWluLWZyYW1lIj4KKyAgICA8cD5U
ZXN0aW5nIERPTS5wZXJmb3JtU2VhcmNoIHdpdGggcGFyZW50IG5vZGUgaWRzLjwvcD4KKworICAg
IDxkaXYgY2xhc3M9ImJhc2UxIj4KKyAgICAgICAgPHAgY2xhc3M9ImJhc2UxIG1haW4tZnJhbWUi
PjwvcD4KKyAgICA8L2Rpdj4KKworICAgIDxkaXYgY2xhc3M9ImJhc2UyIj4KKyAgICAgICAgPHAg
Y2xhc3M9ImJhc2UyIG1haW4tZnJhbWUiPjwvcD4KKyAgICA8L2Rpdj4KKworICAgIDxpZnJhbWUg
c3JjPSJyZXNvdXJjZXMvZG9tLXNlYXJjaC1pZnJhbWUuaHRtbCI+PC9pZnJhbWU+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2RvbS1zZWFy
Y2guaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZG9tLXNlYXJjaC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQyMzI2NGI5NDdjNDJiZGE5Y2Y2OGI4Mzk4ZmM0ZTUzNGViZjdhZWMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2RvbS1zZWFyY2guaHRtbApAQCAt
MCwwICsxLDcxIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRl
c3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIC8vIExv
YWRpbmcgdGhlIHF1ZXJpZXMgZnJvbSBleHRlcm5hbCBmaWxlIHRvIGF2b2lkIGhhdmluZyB0aGVt
IHNob3cgdXAgaW4gdGhlIHJlc3VsdHMuCisgICAgSW5zcGVjdG9yVGVzdC5pbXBvcnRTY3JpcHQo
Ii4uLy4uLy4uLy4uL2luc3BlY3Rvci9kb20vcmVzb3VyY2VzL2RvbS1zZWFyY2gtcXVlcmllcy5q
cyIpOworCisgICAgLy8gQ3JlYXRlIGEgRE9NIGxpc3RlbmVyIHRvIGNvbnZlcnQgbm9kZUlkcyB0
byB0YWcgbmFtZXMuCisgICAgSW5zcGVjdG9yVGVzdC5pbXBvcnRTY3JpcHQoIi4uL2RvbS9yZXNv
dXJjZXMvSW5zcGVjdG9yRE9NTGlzdGVuZXIuanMiKTsKKyAgICB2YXIgZG9tID0gY3JlYXRlRE9N
TGlzdGVuZXIoKTsKKworICAgIC8vIENhY2hpbmcgdGhlIG91dHB1dCB0byBhdm9pZCBzZWFyY2hp
bmcgdGhyb3VnaCB0aGUgbG9nLgorICAgIHZhciBvdXRwdXQgPSBbXTsKKworICAgIEluc3BlY3Rv
clRlc3Quc2VuZENvbW1hbmQoIkRPTS5nZXREb2N1bWVudCIsIHt9LCBvbkdvdERvY3VtZW50KTsK
KworICAgIGZ1bmN0aW9uIG9uR290RG9jdW1lbnQobWVzc2FnZSkgeworICAgICAgICBJbnNwZWN0
b3JUZXN0LmNoZWNrRm9yRXJyb3IobWVzc2FnZSk7CisgICAgICAgIGRvbS5jb2xsZWN0Tm9kZSht
ZXNzYWdlLnJlc3VsdC5yb290KTsKKyAgICAgICAgcGVyZm9ybVNlYXJjaGVzKGRvbVNlYXJjaFF1
ZXJpZXMsIHRlc3RGaW5pc2hlZCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcGVyZm9ybVNlYXJj
aGVzKGxpc3QsIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgZnVuY3Rpb24gbmV4dCgpIHsKKyAg
ICAgICAgICAgIGlmIChsaXN0Lmxlbmd0aCkKKyAgICAgICAgICAgICAgICBzZWFyY2gobGlzdC5z
aGlmdCgpLCBuZXh0KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjYWxsYmFj
aygpOworICAgICAgICB9CisgICAgICAgIG5leHQoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBz
ZWFyY2gocXVlcnksIGNhbGxiYWNrKQorICAgIHsKKyAgICAgICAgb3V0cHV0LnB1c2goIj09PSBR
dWVyeTogIiArIEpTT04uc3RyaW5naWZ5KHF1ZXJ5KSArICIgPT09Iik7CisgICAgICAgIEluc3Bl
Y3RvclRlc3Quc2VuZENvbW1hbmQoIkRPTS5wZXJmb3JtU2VhcmNoIiwge3F1ZXJ5OiBxdWVyeX0s
IGZ1bmN0aW9uKG1lc3NhZ2UpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JF
cnJvcihtZXNzYWdlKTsKKyAgICAgICAgICAgIHByaW50U2VhcmNoUmVzdWx0cyhtZXNzYWdlLnJl
c3VsdCwgY2FsbGJhY2spOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBwcmlu
dFNlYXJjaFJlc3VsdHMocmVzdWx0cywgY2FsbGJhY2spCisgICAgeworICAgICAgICBvdXRwdXQu
cHVzaCgiQ291bnQ6ICIgKyByZXN1bHRzLnJlc3VsdENvdW50KTsKKyAgICAgICAgaWYgKCFyZXN1
bHRzLnJlc3VsdENvdW50KQorICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CisKKyAgICAg
ICAgdmFyIG9wdGlvbnMgPSB7InNlYXJjaElkIjogcmVzdWx0cy5zZWFyY2hJZCwgImZyb21JbmRl
eCI6IDAsICJ0b0luZGV4IjogcmVzdWx0cy5yZXN1bHRDb3VudH07CisgICAgICAgIEluc3BlY3Rv
clRlc3Quc2VuZENvbW1hbmQoIkRPTS5nZXRTZWFyY2hSZXN1bHRzIiwgb3B0aW9ucywgZnVuY3Rp
b24gb25SZXN1bHRzUmVjZWl2ZWQobWVzc2FnZSkgeworICAgICAgICAgICAgZm9yICh2YXIgbm9k
ZUlkIG9mIG1lc3NhZ2UucmVzdWx0Lm5vZGVJZHMpCisgICAgICAgICAgICAgICAgb3V0cHV0LnB1
c2goZG9tLmdldE5vZGVJZGVudGlmaWVyKG5vZGVJZCkpOworICAgICAgICAgICAgY2FsbGJhY2so
KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdEZpbmlzaGVkKCkKKyAg
ICB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKG91dHB1dC5qb2luKCJcbiIpKTsKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIiBjbGFzcz0ibWFpbi1mcmFtZSI+CisgICAg
PHA+VGVzdGluZyBET00ucGVyZm9ybVNlYXJjaCB3aXRoIG5vIHBhcmVudCBub2RlIGlkcy48L3A+
CisgICAgPGlmcmFtZSBzcmM9InJlc291cmNlcy9kb20tc2VhcmNoLWlmcmFtZS5odG1sIj48L2lm
cmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kb20vZm9jdXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9mb2N1
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjA3YjVjMjk5MWRlMjczZjM3ODVlYTIwMmMxZmI1
NTJmODc1NjBmYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20v
Zm9jdXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorIAorZm9jdXNlZAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2ZvY3VzLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZG9tL2ZvY3VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGQ3N2U1MWFiODM0NTFhMTIwMGMy
ZmRjOWZlNjI4NGFhZDg5OGNmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kb20vZm9jdXMuaHRtbApAQCAtMCwwICsxLDQ3IEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK3dpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgZnVuY3Rpb24oKSB7CisgICAgZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigiI3NlY29uZCIpLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgZnVuY3Rpb24o
KSB7CisgICAgICAgIGxvZygiZm9jdXNlZCIpOworICAgIH0pOworfSk7CisKK2Z1bmN0aW9uIHRl
c3QoKQoreworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRPTS5nZXREb2N1bWVudCIs
IHt9LCBvbkdvdERvY3VtZW50KTsKKworICAgIGZ1bmN0aW9uIG9uR290RG9jdW1lbnQobXNnKSB7
CisgICAgICAgIGlmIChtc2cuZXJyb3IpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KG1zZy5lcnJvci5tZXNzYWdlKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgdmFyIG5vZGUg
PSBtc2cucmVzdWx0LnJvb3Q7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRP
TS5xdWVyeVNlbGVjdG9yIiwgeyAibm9kZUlkIjogbm9kZS5ub2RlSWQsICJzZWxlY3RvciI6ICIj
c2Vjb25kIiB9LCBvblF1ZXJ5U2VsZWN0b3IpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9uUXVl
cnlTZWxlY3Rvcihtc2cpIHsKKyAgICAgICAgaWYgKG1zZy5lcnJvcikgeworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2cobXNnLmVycm9yLm1lc3NhZ2UpOworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
ICAgICAgICB2YXIgbm9kZSA9IG1zZy5yZXN1bHQ7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2Vu
ZENvbW1hbmQoIkRPTS5mb2N1cyIsIHsgIm5vZGVJZCI6IG5vZGUubm9kZUlkIH0sIG9uRm9jdXMp
OworICAgIH0KKworICAgIGZ1bmN0aW9uIG9uRm9jdXMobXNnKSB7CisgICAgICAgIGlmIChtc2cu
ZXJyb3IpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhtc2cuZXJyb3IpOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGlucHV0PjwvaW5wdXQ+Cis8aW5wdXQg
aWQ9InNlY29uZCI+PC9pbnB1dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0QWNjZXNzaWJpbGl0eVByb3BlcnRpZXNGb3JOb2RlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0QWNjZXNzaWJpbGl0eVBy
b3BlcnRpZXNGb3JOb2RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMjc2MGVkZDQxMjUzNWRl
ZjU0NGYxNWY3YzYyMjI3Y2UwODU2ODBiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RvbS9nZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGllc0Zvck5vZGUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNTMxIEBACitDaGVja2luZyBXZWIgSW5zcGVjdG9yIHByb3RvY29sIGZv
ciB0aGUgQWNjZXNzaWJpbGl0eSBOb2RlIEluc3BlY3Rvci4KKworI2RvY3VtZW50CisgICAgZXhp
c3RzOiB0cnVlCisgICAgbGFiZWw6IAorICAgIHJvbGU6IAorICAgIGNoaWxkTm9kZUlkcy5sZW5n
dGg6IDQzCisKKworVG90YWwgZWxlbWVudHMgdG8gYmUgdGVzdGVkOiA2NS4KKworPGRpdiBvbmNs
aWNrPSJ2b2lkKDApOyI+Y2xpY2s8L2Rpdj4KKyAgICBleGlzdHM6IHRydWUKKyAgICBsYWJlbDog
CisgICAgcm9sZTogCisgICAgY2hpbGROb2RlSWRzLmxlbmd0aDogMQorICAgIG1vdXNlRXZlbnRO
b2RlSWQ6IGV4aXN0cworICAgIHBhcmVudE5vZGVJZDogZXhpc3RzCisKKzxsaSByb2xlPSJ0cmVl
aXRlbSIgYXJpYS1leHBhbmRlZD0idW5kZWZpbmVkIj5leHBhbmRlZDwvbGk+CisgICAgZXhpc3Rz
OiB0cnVlCisgICAgbGFiZWw6IAorICAgIHJvbGU6IHRyZWVpdGVtCisgICAgY2hpbGROb2RlSWRz
Lmxlbmd0aDogMQorICAgIHBhcmVudE5vZGVJZDogZXhpc3RzCisKKzxsaSByb2xlPSJ0cmVlaXRl
bSIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIGlkPSJhY3RpdmVkZXNjZW5kYW50IiBhcmlhLXNlbGVj
dGVkPSJ0cnVlIj5jb2xsYXBzZWQ8L2xpPgorICAgIGV4aXN0czogdHJ1ZQorICAgIGxhYmVsOiAK
KyAgICByb2xlOiB0cmVlaXRlbQorICAgIGNoaWxkTm9kZUlkcy5sZW5ndGg6IDEKKyAgICBleHBh
bmRlZDogZmFsc2UKKyAgICBwYXJlbnROb2RlSWQ6IGV4aXN0cworICAgIHNlbGVjdGVkOiB0cnVl
CisKKzxsaSByb2xlPSJ0cmVlaXRlbSIgYXJpYS1leHBhbmRlZD0idHJ1ZSI+ZXhwYW5kZWQ8L2xp
PgorICAgIGV4aXN0czogdHJ1ZQorICAgIGxhYmVsOiAKKyAgICByb2xlOiB0cmVlaXRlbQorICAg
IGNoaWxkTm9kZUlkcy5sZW5ndGg6IDEKKyAgICBleHBhbmRlZDogdHJ1ZQorICAgIHBhcmVudE5v
ZGVJZDogZXhpc3RzCisKKzx1bCByb2xlPSJ0cmVlIiBpZD0iZmxvd2VkVG8xIiBhcmlhLWFjdGl2
ZWRlc2NlbmRhbnQ9ImFjdGl2ZWRlc2NlbmRhbnQiPgorICAgIDxsaSByb2xlPSJ0cmVlaXRlbSIg
YXJpYS1leHBhbmRlZD0idHJ1ZSI+ZXhwYW5kZWQ8L2xpPgorICAgIDxsaSByb2xlPSJ0cmVlaXRl
bSIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIGlkPSJhY3RpdmVkZXNjZW5kYW50IiBhcmlhLXNlbGVj
dGVkPSJ0cnVlIj5jb2xsYXBzZWQ8L2xpPgorICAgIDxsaSByb2xlPSJ0cmVlaXRlbSIgYXJpYS1l
eHBhbmRlZD0idW5kZWZpbmVkIj5leHBhbmRlZDwvbGk+Cis8L3VsPgorICAgIGV4aXN0czogdHJ1
ZQorICAgIGxhYmVsOiAKKyAgICByb2xlOiB0cmVlCisgICAgYWN0aXZlRGVzY2VuZGFudE5vZGVJ
ZDogZXhpc3RzCisgICAgY2hpbGROb2RlSWRzLmxlbmd0aDogMworICAgIHBhcmVudE5vZGVJZDog
ZXhpc3RzCisgICAgc2VsZWN0ZWRDaGlsZE5vZGVJZHMubGVuZ3RoOiAxCisKKzxkaXYgcm9sZT0i
b3B0aW9uIiBhcmlhLWJ1c3k9InRydWUiPmJ1c3kgKHNlbGYpPC9kaXY+CisgICAgZXhpc3RzOiB0
cnVlCisgICAgbGFiZWw6IGJ1c3kgKHNlbGYpCisgICAgcm9sZTogb3B0aW9uCisgICAgYnVzeTog
dHJ1ZQorICAgIHBhcmVudE5vZGVJZDogZXhpc3RzCisKKzxkaXYgcm9sZT0ib3B0aW9uIj5idXN5
IChwYXJlbnQpPC9kaXY+CisgICAgZXhpc3RzOiB0cnVlCisgICAgbGFiZWw6IGJ1c3kgKHBhcmVu
dCkKKyAgICByb2xlOiBvcHRpb24KKyAgICBidXN5OiB0cnVlCisgICAgcGFyZW50Tm9kZUlkOiBl
eGlzdHMKKworPGRpdiByb2xlPSJsaXN0Ym94IiBhcmlhLW11bHRpc2VsZWN0YWJsZT0idHJ1ZSI+
CisgICAgPGRpdiByb2xlPSJvcHRpb24iIGFyaWEtc2VsZWN0ZWQ9InRydWUiPnNlbGVjdGVkPC9k
aXY+CisgICAgPGRpdiByb2xlPSJvcHRpb24iIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIj5ub3Qgc2Vs
ZWN0ZWQ8L2Rpdj4KKyAgICA8ZGl2IHJvbGU9Im9wdGlvbiIgYXJpYS1zZWxlY3RlZD0idHJ1ZSI+
c2VsZWN0ZWQ8L2Rpdj4KKzwvZGl2PgorICAgIGV4aXN0czogdHJ1ZQorICAgIGxhYmVsOiAKKyAg
ICByb2xlOiBsaXN0Ym94CisgICAgY2hpbGROb2RlSWRzLmxlbmd0aDogMworICAgIHBhcmVudE5v
ZGVJZDogZXhpc3RzCisgICAgcmVxdWlyZWQ6IGZhbHNlCisgICAgc2VsZWN0ZWRDaGlsZE5vZGVJ
ZHMubGVuZ3RoOiAyCisKKzxkaXYgcm9sZT0idGFiIiBhcmlhLXNlbGVjdGVkPSJmYWxzZSI+bm90
IHNlbGVjdGVkPC9kaXY+CisgICAgZXhpc3RzOiB0cnVlCisgICAgbGFiZWw6IG5vdCBzZWxlY3Rl
ZAorICAgIHJvbGU6IHRhYgorICAgIHBhcmVudE5vZGVJZDogZXhpc3RzCisKKzxkaXYgcm9sZT0i
dGFiIiBhcmlhLXNlbGVjdGVkPSJ0cnVlIj5zZWxlY3RlZDwvZGl2PgorICAgIGV4aXN0czogdHJ1
ZQorICAgIGxhYmVsOiBzZWxlY3RlZAorICAgIHJvbGU6IHRhYgorICAgIHBhcmVudE5vZGVJZDog
ZXhpc3RzCisgICAgc2VsZWN0ZWQ6IHRydWUKKworPGRpdiByb2xlPSJ0YWJsaXN0IiBhcmlhLWZs
b3d0bz0iZmxvd2VkVG8xIGludmFsaWRJZFJlZiBmbG93ZWRUbzIiPgorICAgIDxkaXYgcm9sZT0i
dGFiIiBhcmlhLXNlbGVjdGVkPSJ0cnVlIj5zZWxlY3RlZDwvZGl2PgorICAgIDxkaXYgcm9sZT0i
dGFiIiBhcmlhLXNlbGVjdGVkPSJmYWxzZSI+bm90IHNlbGVjdGVkPC9kaXY+Cis8L2Rpdj4KKyAg
ICBleGlzdHM6IHRydWUKKyAgICBsYWJlbDogCisgICAgcm9sZTogdGFibGlzdAorICAgIGNoaWxk
Tm9kZUlkcy5sZW5ndGg6IDIKKyAgICBmbG93ZWROb2RlSWRzLmxlbmd0aDogMgorICAgIHBhcmVu
dE5vZGVJZDogZXhpc3RzCisKKzxkaXYgcm9sZT0ib3B0aW9uIiBhcmlhLXNlbGVjdGVkPSJmYWxz
ZSI+bm90IHNlbGVjdGVkPC9kaXY+CisgICAgZXhpc3RzOiB0cnVlCisgICAgbGFiZWw6IG5vdCBz
ZWxlY3RlZAorICAgIHJvbGU6IG9wdGlvbgorICAgIHBhcmVudE5vZGVJZDogZXhpc3RzCisKKzxk
aXYgcm9sZT0ib3B0aW9uIiBhcmlhLXNlbGVjdGVkPSJ0cnVlIj5zZWxlY3RlZDwvZGl2PgorICAg
IGV4aXN0czogdHJ1ZQorICAgIGxhYmVsOiBzZWxlY3RlZAorICAgIHJvbGU6IG9wdGlvbgorICAg
IHBhcmVudE5vZGVJZDogZXhpc3RzCisgICAgc2VsZWN0ZWQ6IHRydWUKKworPGRpdiByb2xlPSJs
aXN0Ym94IiBpZD0ib3duZWRsaXN0Ym94Ij4KKyAgICA8ZGl2IHJvbGU9Im9wdGlvbiIgYXJpYS1z
ZWxlY3RlZD0idHJ1ZSI+c2VsZWN0ZWQ8L2Rpdj4KKyAgICA8ZGl2IHJvbGU9Im9wdGlvbiIgYXJp
YS1zZWxlY3RlZD0iZmFsc2UiPm5vdCBzZWxlY3RlZDwvZGl2PgorPC9kaXY+CisgICAgZXhpc3Rz
OiB0cnVlCisgICAgbGFiZWw6IAorICAgIHJvbGU6IGxpc3Rib3gKKyAgICBjaGlsZE5vZGVJZHMu
bGVuZ3RoOiAyCisgICAgcGFyZW50Tm9kZUlkOiBleGlzdHMKKyAgICByZXF1aXJlZDogZmFsc2UK
KyAgICBzZWxlY3RlZENoaWxkTm9kZUlkcy5sZW5ndGg6IDEKKworPGlucHV0IHJvbGU9ImNvbWJv
Ym94IiBhcmlhLW93bnM9Im93bmVkbGlzdGJveCBpbnZhbGlkSWRSZWYiIGFyaWEtY29udHJvbHM9
Im93bmVkbGlzdGJveCBpbnZhbGlkSWRSZWYiPgorICAgIGV4aXN0czogdHJ1ZQorICAgIGxhYmVs
OiAKKyAgICByb2xlOiBjb21ib2JveAorICAgIGNvbnRyb2xsZWROb2RlSWRzLmxlbmd0aDogMQor
ICAgIGV4cGFuZGVkOiBmYWxzZQorICAgIGZvY3VzZWQ6IGZhbHNlCisgICAgb3duZWROb2RlSWRz
Lmxlbmd0aDogMQorICAgIHJlcXVpcmVkOiBmYWxzZQorCis8b3B0aW9uPm5vdCBzZWxlY3RlZDwv
b3B0aW9uPgorICAgIGV4aXN0czogZmFsc2UKKyAgICBsYWJlbDogCisgICAgcm9sZTogCisKKzxv
cHRpb24gc2VsZWN0ZWQ9IiI+RklYTUU6IFNlbGVjdGVkIGlzIGZhbHNlLiBFeHBlY3RlZCB0cnVl
LiBodHRwOi8vd2Via2l0Lm9yZy9iLzEyOTgzNTwvb3B0aW9uPgorICAgIGV4aXN0czogZmFsc2UK
KyAgICBsYWJlbDogCisgICAgcm9sZTogCisKKzxpbWcgc3JjPSJkYXRhOmltYWdlL2dpZi4uLiIg
YWx0PSJ4IiBzdHlsZT0iZGlzcGxheTpub25lOyI+CisgICAgZXhpc3RzOiBmYWxzZQorICAgIGxh
YmVsOiAKKyAgICByb2xlOiAKKworPGltZyBzcmM9ImRhdGE6aW1hZ2UvZ2lmLi4uIiBhbHQ9Ingi
IGFyaWEtaGlkZGVuPSJ0cnVlIj4KKyAgICBleGlzdHM6IHRydWUKKyAgICBsYWJlbDogeAorICAg
IHJvbGU6IGltZworICAgIGlnbm9yZWQ6IHRydWUKKyAgICBpZ25vcmVkQnlEZWZhdWx0OiB0cnVl
CisgICAgaGlkZGVuOiB0cnVlCisKKzxpbWcgc3JjPSJkYXRhOmltYWdlL2dpZi4uLiIgYWx0PSJ4
Ij4KKyAgICBleGlzdHM6IHRydWUKKyAgICBsYWJlbDogeAorICAgIHJvbGU6IGltZworCis8aW1n
IHNyYz0iZGF0YTppbWFnZS9naWYuLi4iIGFsdD0iIj4KKyAgICBleGlzdHM6IHRydWUKKyAgICBs
YWJlbDogCisgICAgcm9sZTogaW1nCisgICAgaWdub3JlZDogdHJ1ZQorCis8aW1nIHNyYz0iZGF0
YTppbWFnZS9naWYuLi4iPgorICAgIGV4aXN0czogdHJ1ZQorICAgIGxhYmVsOiAKKyAgICByb2xl
OiBpbWcKKworPGltZyBzcmM9Ii4vNDA0LmdpZiI+CisgICAgZXhpc3RzOiB0cnVlCisgICAgbGFi
ZWw6IAorICAgIHJvbGU6IGltZworICAgIGlnbm9yZWQ6IHRydWUKKworPGlucHV0IHN0eWxlPSJk
aXNwbGF5Om5vbmU7Ij4KKyAgICBleGlzdHM6IGZhbHNlCisgICAgbGFiZWw6IAorICAgIHJvbGU6
IAorCis8aW5wdXQgYXJpYS1oaWRkZW49InRydWUiPgorICAgIGV4aXN0czogdHJ1ZQorICAgIGxh
YmVsOiAKKyAgICByb2xlOiAKKyAgICBmb2N1c2VkOiBmYWxzZQorICAgIGlnbm9yZWQ6IHRydWUK
KyAgICBpZ25vcmVkQnlEZWZhdWx0OiB0cnVlCisgICAgaGlkZGVuOiB0cnVlCisgICAgcmVxdWly
ZWQ6IGZhbHNlCisKKzxkaXYgcm9sZT0icmFkaW8iIGFyaWEtY2hlY2tlZD0iZmFsc2UiPnVuY2hl
Y2tlZDwvZGl2PgorICAgIGV4aXN0czogdHJ1ZQorICAgIGxhYmVsOiB1bmNoZWNrZWQKKyAgICBy
b2xlOiByYWRpbworICAgIGNoZWNrZWQ6IGZhbHNlCisgICAgcGFyZW50Tm9kZUlkOiBleGlzdHMK
KyAgICByZXF1aXJlZDogZmFsc2UKKworPGRpdiByb2xlPSJyYWRpbyIgYXJpYS1jaGVja2VkPSJt
aXhlZCI+dW5jaGVja2VkIFtzaWNdIG1peGVkIHN0YXRlIHdpbGwgbm90IGJlIGV4cG9zZWQgb24g
cmFkaW9zIHBlciBBUklBIHNwZWMuPC9kaXY+CisgICAgZXhpc3RzOiB0cnVlCisgICAgbGFiZWw6
IHVuY2hlY2tlZCBbc2ljXSBtaXhlZCBzdGF0ZSB3aWxsIG5vdCBiZSBleHBvc2VkIG9uIHJhZGlv
cyBwZXIgQVJJQSBzcGVjLgorICAgIHJvbGU6IHJhZGlvCisgICAgY2hlY2tlZDogZmFsc2UKKyAg
ICBwYXJlbnROb2RlSWQ6IGV4aXN0cworICAgIHJlcXVpcmVkOiBmYWxzZQorCis8ZGl2IHJvbGU9
InJhZGlvIiBhcmlhLWNoZWNrZWQ9InRydWUiPmNoZWNrZWQ8L2Rpdj4KKyAgICBleGlzdHM6IHRy
dWUKKyAgICBsYWJlbDogY2hlY2tlZAorICAgIHJvbGU6IHJhZGlvCisgICAgY2hlY2tlZDogdHJ1
ZQorICAgIHBhcmVudE5vZGVJZDogZXhpc3RzCisgICAgcmVxdWlyZWQ6IGZhbHNlCisKKzxkaXYg
cm9sZT0icmFkaW8iPnVuY2hlY2tlZCAoY2hlY2tlZCB1bmRlZmluZWQgZXZhbHMgdG8gZmFsc2Ug
b24gcmFkaW8pPC9kaXY+CisgICAgZXhpc3RzOiB0cnVlCisgICAgbGFiZWw6IHVuY2hlY2tlZCAo
Y2hlY2tlZCB1bmRlZmluZWQgZXZhbHMgdG8gZmFsc2Ugb24gcmFkaW8pCisgICAgcm9sZTogcmFk
aW8KKyAgICBjaGVja2VkOiBmYWxzZQorICAgIHBhcmVudE5vZGVJZDogZXhpc3RzCisgICAgcmVx
dWlyZWQ6IGZhbHNlCisKKzxpbnB1dCB0eXBlPSJyYWRpbyIgY2hlY2tlZD0iIj4KKyAgICBleGlz
dHM6IHRydWUKKyAgICBsYWJlbDogCisgICAgcm9sZTogcmFkaW8KKyAgICBjaGVja2VkOiB0cnVl
CisgICAgZm9jdXNlZDogZmFsc2UKKyAgICByZXF1aXJlZDogZmFsc2UKKworPGlucHV0IHR5cGU9
InJhZGlvIj4KKyAgICBleGlzdHM6IHRydWUKKyAgICBsYWJlbDogCisgICAgcm9sZTogcmFkaW8K
KyAgICBjaGVja2VkOiBmYWxzZQorICAgIGZvY3VzZWQ6IGZhbHNlCisgICAgcmVxdWlyZWQ6IGZh
bHNlCisKKzxkaXYgcm9sZT0iY2hlY2tib3giIGFyaWEtY2hlY2tlZD0iZmFsc2UiPnVuY2hlY2tl
ZDwvZGl2PgorICAgIGV4aXN0czogdHJ1ZQorICAgIGxhYmVsOiB1bmNoZWNrZWQKKyAgICByb2xl
OiBjaGVja2JveAorICAgIGNoZWNrZWQ6IGZhbHNlCisgICAgcGFyZW50Tm9kZUlkOiBleGlzdHMK
KyAgICByZXF1aXJlZDogZmFsc2UKKworPGRpdiByb2xlPSJjaGVja2JveCIgYXJpYS1jaGVja2Vk
PSJtaXhlZCI+bWl4ZWQ8L2Rpdj4KKyAgICBleGlzdHM6IHRydWUKKyAgICBsYWJlbDogbWl4ZWQK
KyAgICByb2xlOiBjaGVja2JveAorICAgIGNoZWNrZWQ6IG1peGVkCisgICAgcGFyZW50Tm9kZUlk
OiBleGlzdHMKKyAgICByZXF1aXJlZDogZmFsc2UKKworPGRpdiByb2xlPSJjaGVja2JveCIgYXJp
YS1jaGVja2VkPSJ0cnVlIj5jaGVja2VkPC9kaXY+CisgICAgZXhpc3RzOiB0cnVlCisgICAgbGFi
ZWw6IGNoZWNrZWQKKyAgICByb2xlOiBjaGVja2JveAorICAgIGNoZWNrZWQ6IHRydWUKKyAgICBw
YXJlbnROb2RlSWQ6IGV4aXN0cworICAgIHJlcXVpcmVkOiBmYWxzZQorCis8ZGl2IHJvbGU9ImNo
ZWNrYm94Ij51bmNoZWNrZWQgKGNoZWNrZWQgdW5kZWZpbmVkIGV2YWxzIHRvIGZhbHNlIG9uIGNo
ZWNrYm94KTwvZGl2PgorICAgIGV4aXN0czogdHJ1ZQorICAgIGxhYmVsOiB1bmNoZWNrZWQgKGNo
ZWNrZWQgdW5kZWZpbmVkIGV2YWxzIHRvIGZhbHNlIG9uIGNoZWNrYm94KQorICAgIHJvbGU6IGNo
ZWNrYm94CisgICAgY2hlY2tlZDogZmFsc2UKKyAgICBwYXJlbnROb2RlSWQ6IGV4aXN0cworICAg
IHJlcXVpcmVkOiBmYWxzZQorCis8aW5wdXQgdHlwZT0iY2hlY2tib3giIGNoZWNrZWQ9IiI+Cisg
ICAgZXhpc3RzOiB0cnVlCisgICAgbGFiZWw6IAorICAgIHJvbGU6IGNoZWNrYm94CisgICAgY2hl
Y2tlZDogdHJ1ZQorICAgIGZvY3VzZWQ6IGZhbHNlCisgICAgcmVxdWlyZWQ6IGZhbHNlCisKKzxp
bnB1dCB0eXBlPSJjaGVja2JveCI+CisgICAgZXhpc3RzOiB0cnVlCisgICAgbGFiZWw6IAorICAg
IHJvbGU6IGNoZWNrYm94CisgICAgY2hlY2tlZDogZmFsc2UKKyAgICBmb2N1c2VkOiBmYWxzZQor
ICAgIHJlcXVpcmVkOiBmYWxzZQorCis8ZGl2IHJvbGU9InRleHRib3giIHRhYmluZGV4PSIwIiBh
cmlhLWRpc2FibGVkPSJ0cnVlIj5kaXNhYmxlZDwvZGl2PgorICAgIGV4aXN0czogdHJ1ZQorICAg
IGxhYmVsOiAKKyAgICByb2xlOiAKKyAgICBkaXNhYmxlZDogdHJ1ZQorICAgIGZvY3VzZWQ6IGZh
bHNlCisgICAgcGFyZW50Tm9kZUlkOiBleGlzdHMKKyAgICByZWFkb25seTogdHJ1ZQorICAgIHJl
cXVpcmVkOiBmYWxzZQorCis8aW5wdXQgZGlzYWJsZWQ9IiIgdmFsdWU9ImRpc2FibGVkIj4KKyAg
ICBleGlzdHM6IHRydWUKKyAgICBsYWJlbDogCisgICAgcm9sZTogCisgICAgY2hpbGROb2RlSWRz
Lmxlbmd0aDogMQorICAgIGRpc2FibGVkOiB0cnVlCisgICAgcmVxdWlyZWQ6IGZhbHNlCisKKzxk
aXYgcm9sZT0idGV4dGJveCIgdGFiaW5kZXg9IjAiIGFyaWEtcmVhZG9ubHk9InRydWUiPnJlYWRv
bmx5PC9kaXY+CisgICAgZXhpc3RzOiB0cnVlCisgICAgbGFiZWw6IAorICAgIHJvbGU6IAorICAg
IGZvY3VzZWQ6IGZhbHNlCisgICAgcGFyZW50Tm9kZUlkOiBleGlzdHMKKyAgICByZWFkb25seTog
dHJ1ZQorICAgIHJlcXVpcmVkOiBmYWxzZQorCis8aW5wdXQgcmVhZG9ubHk9IiIgdmFsdWU9InJl
YWRvbmx5Ij4KKyAgICBleGlzdHM6IHRydWUKKyAgICBsYWJlbDogCisgICAgcm9sZTogCisgICAg
Y2hpbGROb2RlSWRzLmxlbmd0aDogMQorICAgIGZvY3VzZWQ6IGZhbHNlCisgICAgcmVhZG9ubHk6
IHRydWUKKyAgICByZXF1aXJlZDogZmFsc2UKKworPGlucHV0IGFyaWEtaW52YWxpZD0iZm9vIiB2
YWx1ZT0iZmFrZSB2YWx1ZSB3aWxsIGV2YWwgdG8gdHJ1ZSI+CisgICAgZXhpc3RzOiB0cnVlCisg
ICAgbGFiZWw6IAorICAgIHJvbGU6IAorICAgIGNoaWxkTm9kZUlkcy5sZW5ndGg6IDEKKyAgICBm
b2N1c2VkOiBmYWxzZQorICAgIGludmFsaWQ6IHRydWUKKyAgICByZXF1aXJlZDogZmFsc2UKKwor
PGlucHV0IGFyaWEtaW52YWxpZD0ic3BlbGxpbmciIHZhbHVlPSJpbnZhbGlkIHNwZWxsaW5nIj4K
KyAgICBleGlzdHM6IHRydWUKKyAgICBsYWJlbDogCisgICAgcm9sZTogCisgICAgY2hpbGROb2Rl
SWRzLmxlbmd0aDogMQorICAgIGZvY3VzZWQ6IGZhbHNlCisgICAgaW52YWxpZDogc3BlbGxpbmcK
KyAgICByZXF1aXJlZDogZmFsc2UKKworPGlucHV0IGFyaWEtcmVxdWlyZWQ9InRydWUiIHZhbHVl
PSJyZXF1aXJlZCI+CisgICAgZXhpc3RzOiB0cnVlCisgICAgbGFiZWw6IAorICAgIHJvbGU6IAor
ICAgIGNoaWxkTm9kZUlkcy5sZW5ndGg6IDEKKyAgICBmb2N1c2VkOiBmYWxzZQorICAgIHJlcXVp
cmVkOiB0cnVlCisKKzxpbnB1dCByZXF1aXJlZD0iIj4KKyAgICBleGlzdHM6IHRydWUKKyAgICBs
YWJlbDogCisgICAgcm9sZTogCisgICAgZm9jdXNlZDogZmFsc2UKKyAgICByZXF1aXJlZDogdHJ1
ZQorCis8aW5wdXQ+CisgICAgZXhpc3RzOiB0cnVlCisgICAgbGFiZWw6IAorICAgIHJvbGU6IAor
ICAgIGZvY3VzZWQ6IGZhbHNlCisgICAgcmVxdWlyZWQ6IGZhbHNlCisKKzxpbnB1dCB0eXBlPSJi
dXR0b24iPgorICAgIGV4aXN0czogdHJ1ZQorICAgIGxhYmVsOiAKKyAgICByb2xlOiBidXR0b24K
KyAgICBmb2N1c2VkOiBmYWxzZQorCis8YnV0dG9uPjwvYnV0dG9uPgorICAgIGV4aXN0czogdHJ1
ZQorICAgIGxhYmVsOiAKKyAgICByb2xlOiBidXR0b24KKyAgICBmb2N1c2VkOiBmYWxzZQorCis8
ZGl2IHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGFyaWEtcHJlc3NlZD0iZmFsc2UiPk5vdCBQ
cmVzc2VkLjwvZGl2PgorICAgIGV4aXN0czogdHJ1ZQorICAgIGxhYmVsOiBOb3QgUHJlc3NlZC4K
KyAgICByb2xlOiAKKyAgICBmb2N1c2VkOiBmYWxzZQorICAgIHBhcmVudE5vZGVJZDogZXhpc3Rz
CisgICAgcHJlc3NlZDogZmFsc2UKKyAgICByZXF1aXJlZDogZmFsc2UKKworPGRpdiByb2xlPSJi
dXR0b24iIHRhYmluZGV4PSIwIiBhcmlhLXByZXNzZWQ9InRydWUiPlByZXNzZWQuPC9kaXY+Cisg
ICAgZXhpc3RzOiB0cnVlCisgICAgbGFiZWw6IFByZXNzZWQuCisgICAgcm9sZTogCisgICAgZm9j
dXNlZDogZmFsc2UKKyAgICBwYXJlbnROb2RlSWQ6IGV4aXN0cworICAgIHByZXNzZWQ6IHRydWUK
KyAgICByZXF1aXJlZDogZmFsc2UKKworPGRpdiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBh
cmlhLWRpc2FibGVkPSJ0cnVlIj5kaXNhYmxlZDwvZGl2PgorICAgIGV4aXN0czogdHJ1ZQorICAg
IGxhYmVsOiBkaXNhYmxlZAorICAgIHJvbGU6IGJ1dHRvbgorICAgIGRpc2FibGVkOiB0cnVlCisg
ICAgZm9jdXNlZDogZmFsc2UKKyAgICBwYXJlbnROb2RlSWQ6IGV4aXN0cworCis8ZGl2IHJvbGU9
ImJ1dHRvbiIgdGFiaW5kZXg9IjAiPjwvZGl2PgorICAgIGV4aXN0czogdHJ1ZQorICAgIGxhYmVs
OiAKKyAgICByb2xlOiBidXR0b24KKyAgICBmb2N1c2VkOiBmYWxzZQorICAgIHBhcmVudE5vZGVJ
ZDogZXhpc3RzCisKKzxkaXYgcm9sZT0iZ3JvdXAiIGFyaWEtbGl2ZT0iYXNzZXJ0aXZlIiBhcmlh
LWF0b21pYz0idHJ1ZSI+YXNzZXJ0aXZlIChhbmQgYXRvbWljKTwvZGl2PgorICAgIGV4aXN0czog
dHJ1ZQorICAgIGxhYmVsOiAKKyAgICByb2xlOiBncm91cAorICAgIGNoaWxkTm9kZUlkcy5sZW5n
dGg6IDEKKyAgICBsaXZlUmVnaW9uQXRvbWljOiB0cnVlCisgICAgbGl2ZVJlZ2lvblJlbGV2YW50
OiBhZGRpdGlvbnMsdGV4dAorICAgIGxpdmVSZWdpb25TdGF0dXM6IGFzc2VydGl2ZQorICAgIHBh
cmVudE5vZGVJZDogZXhpc3RzCisKKzxkaXYgcm9sZT0iZ3JvdXAiIGFyaWEtbGl2ZT0icG9saXRl
Ij5wb2xpdGU8L2Rpdj4KKyAgICBleGlzdHM6IHRydWUKKyAgICBsYWJlbDogCisgICAgcm9sZTog
Z3JvdXAKKyAgICBjaGlsZE5vZGVJZHMubGVuZ3RoOiAxCisgICAgbGl2ZVJlZ2lvbkF0b21pYzog
ZmFsc2UKKyAgICBsaXZlUmVnaW9uUmVsZXZhbnQ6IGFkZGl0aW9ucyx0ZXh0CisgICAgbGl2ZVJl
Z2lvblN0YXR1czogcG9saXRlCisgICAgcGFyZW50Tm9kZUlkOiBleGlzdHMKKworPGRpdiByb2xl
PSJncm91cCIgYXJpYS1saXZlPSJvZmYiPm9mZjwvZGl2PgorICAgIGV4aXN0czogdHJ1ZQorICAg
IGxhYmVsOiAKKyAgICByb2xlOiBncm91cAorICAgIGNoaWxkTm9kZUlkcy5sZW5ndGg6IDEKKyAg
ICBwYXJlbnROb2RlSWQ6IGV4aXN0cworCis8ZGl2IHJvbGU9Imxpc3Rib3giIGFyaWEtYnVzeT0i
dHJ1ZSI+CisgICAgPCEtLSBEZXNwaXRlIGhhdmluZyBubyByZXF1aXJlZCBvcHRpb24gY2hpbGRy
ZW4sIHRoaXMgaXMgdmFsaWQgYmVjYXVzZSBpdCBpcyBtYXJrZWQgYXMgYnVzeS4gLS0+CisgICAg
PCEtLSBGb3IgZXhhbXBsZSwgd2FpdGluZyBmb3IgYSBzY3JpcHQgdG8gbG9hZCBpdHMgY29udGVu
dHMuIC0tPgorPC9kaXY+CisgICAgZXhpc3RzOiB0cnVlCisgICAgbGFiZWw6IAorICAgIHJvbGU6
IGxpc3Rib3gKKyAgICBidXN5OiB0cnVlCisgICAgcGFyZW50Tm9kZUlkOiBleGlzdHMKKyAgICBy
ZXF1aXJlZDogZmFsc2UKKworPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KKyAgICBl
eGlzdHM6IHRydWUKKyAgICBsYWJlbDogCisgICAgcm9sZTogCisgICAgaWdub3JlZDogdHJ1ZQor
ICAgIGlnbm9yZWRCeURlZmF1bHQ6IHRydWUKKyAgICBoaWRkZW46IHRydWUKKyAgICBwYXJlbnRO
b2RlSWQ6IGV4aXN0cworCis8c3Bhbj48L3NwYW4+CisgICAgZXhpc3RzOiB0cnVlCisgICAgbGFi
ZWw6IAorICAgIHJvbGU6IAorICAgIGlnbm9yZWQ6IHRydWUKKyAgICBpZ25vcmVkQnlEZWZhdWx0
OiB0cnVlCisgICAgcGFyZW50Tm9kZUlkOiBleGlzdHMKKworPGRpdiBhcmlhLWhpZGRlbj0idHJ1
ZSI+PC9kaXY+CisgICAgZXhpc3RzOiB0cnVlCisgICAgbGFiZWw6IAorICAgIHJvbGU6IAorICAg
IGlnbm9yZWQ6IHRydWUKKyAgICBpZ25vcmVkQnlEZWZhdWx0OiB0cnVlCisgICAgaGlkZGVuOiB0
cnVlCisgICAgcGFyZW50Tm9kZUlkOiBleGlzdHMKKworPGRpdj48L2Rpdj4KKyAgICBleGlzdHM6
IHRydWUKKyAgICBsYWJlbDogCisgICAgcm9sZTogCisgICAgaWdub3JlZDogdHJ1ZQorICAgIHBh
cmVudE5vZGVJZDogZXhpc3RzCisKKzxkaXYgcm9sZT0icHJlc2VudGF0aW9uIj48ZGl2PjwvZGl2
PjwvZGl2PgorICAgIGV4aXN0czogdHJ1ZQorICAgIGxhYmVsOiAKKyAgICByb2xlOiBwcmVzZW50
YXRpb24KKyAgICBpZ25vcmVkOiB0cnVlCisgICAgcGFyZW50Tm9kZUlkOiBleGlzdHMKKworPGRp
diByb2xlPSJncm91cCI+CisgICAgPGRpdj5mb288L2Rpdj4KKyAgICA8c3Bhbj4KKyAgICAgICAg
YmFyCisgICAgICAgIDxzcGFuIHJvbGU9ImJ1dHRvbiI+YmF6PC9zcGFuPgorICAgIDwvc3Bhbj4K
KyAgICA8ZGl2PjwvZGl2PgorICAgIDxkaXY+PC9kaXY+Cis8L2Rpdj4KKyAgICBleGlzdHM6IHRy
dWUKKyAgICBsYWJlbDogCisgICAgcm9sZTogZ3JvdXAKKyAgICBjaGlsZE5vZGVJZHMubGVuZ3Ro
OiAzCisgICAgcGFyZW50Tm9kZUlkOiBleGlzdHMKKworPGRpdj48ZGl2PjwvZGl2PjwvZGl2Pgor
ICAgIGV4aXN0czogdHJ1ZQorICAgIGxhYmVsOiAKKyAgICByb2xlOiAKKyAgICBpZ25vcmVkOiB0
cnVlCisgICAgcGFyZW50Tm9kZUlkOiBleGlzdHMKKworPHNjcmlwdCBzdHlsZT0iZGlzcGxheTpi
bG9jazsiPjwvc2NyaXB0PgorICAgIGV4aXN0czogdHJ1ZQorICAgIGxhYmVsOiAKKyAgICByb2xl
OiBncm91cAorICAgIGlnbm9yZWQ6IHRydWUKKyAgICBwYXJlbnROb2RlSWQ6IGV4aXN0cworCis8
c2NyaXB0Pjwvc2NyaXB0PgorICAgIGV4aXN0czogZmFsc2UKKyAgICBsYWJlbDogCisgICAgcm9s
ZTogCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0QWNjZXNzaWJp
bGl0eVByb3BlcnRpZXNGb3JOb2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2dl
dEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyM2I3OGM0
MGI4MjYwZDk2ZTJlMWMzZWIzMGM3N2Y4ZmNhOTUwNWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZG9tL2dldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZS5o
dG1sCkBAIC0wLDAgKzEsMjI1IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3By
b3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25Mb2FkPSJydW5UZXN0
KCkiPgorCis8cD5DaGVja2luZyBXZWIgSW5zcGVjdG9yIHByb3RvY29sIGZvciB0aGUgQWNjZXNz
aWJpbGl0eSBOb2RlIEluc3BlY3Rvci48L3A+CisKKzxkaXYgaWQ9ImV4YW1wbGVzIj4KKworPHNj
cmlwdCBjbGFzcz0iZXgiPjwvc2NyaXB0PgorPHNjcmlwdCBjbGFzcz0iZXgiIHN0eWxlPSJkaXNw
bGF5OmJsb2NrOyI+PC9zY3JpcHQ+CisKKzxkaXYgY2xhc3M9ImV4Ij48ZGl2PjwvZGl2PjwvZGl2
PgorCis8ZGl2IHJvbGU9Imdyb3VwIiBjbGFzcz0iZXgiPgorICAgIDxkaXY+Zm9vPC9kaXY+Cisg
ICAgPHNwYW4+CisgICAgICAgIGJhcgorICAgICAgICA8c3BhbiByb2xlPSJidXR0b24iPmJhejwv
c3Bhbj4KKyAgICA8L3NwYW4+CisgICAgPGRpdj48L2Rpdj4KKyAgICA8ZGl2PjwvZGl2PgorPC9k
aXY+CisKKzxkaXYgY2xhc3M9ImV4IiByb2xlPSJwcmVzZW50YXRpb24iPjxkaXY+PC9kaXY+PC9k
aXY+Cis8ZGl2IGNsYXNzPSJleCI+PC9kaXY+Cis8ZGl2IGNsYXNzPSJleCIgYXJpYS1oaWRkZW49
InRydWUiPjwvZGl2PgorPHNwYW4gY2xhc3M9ImV4Ij48L3NwYW4+Cis8c3BhbiBjbGFzcz0iZXgi
IGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+CisKKzxkaXYgcm9sZT0ibGlzdGJveCIgY2xhc3M9
ImV4IiBhcmlhLWJ1c3k9InRydWUiPgorICAgIDwhLS0gRGVzcGl0ZSBoYXZpbmcgbm8gcmVxdWly
ZWQgb3B0aW9uIGNoaWxkcmVuLCB0aGlzIGlzIHZhbGlkIGJlY2F1c2UgaXQgaXMgbWFya2VkIGFz
IGJ1c3kuIC0tPgorICAgIDwhLS0gRm9yIGV4YW1wbGUsIHdhaXRpbmcgZm9yIGEgc2NyaXB0IHRv
IGxvYWQgaXRzIGNvbnRlbnRzLiAtLT4KKzwvZGl2PgorCis8IS0tIEZ1bGwgY292ZXJhZ2Ugb2Yg
bGl2ZSByZWdpb25zIGluIGdldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZV9saXZlUmVn
aW9uLmh0bWwuIC0tPgorPGRpdiBjbGFzcz0iZXgiIHJvbGU9Imdyb3VwIiBhcmlhLWxpdmU9Im9m
ZiI+b2ZmPC9kaXY+Cis8ZGl2IGNsYXNzPSJleCIgcm9sZT0iZ3JvdXAiIGFyaWEtbGl2ZT0icG9s
aXRlIj5wb2xpdGU8L2Rpdj4KKzxkaXYgY2xhc3M9ImV4IiByb2xlPSJncm91cCIgYXJpYS1saXZl
PSJhc3NlcnRpdmUiIGFyaWEtYXRvbWljPSJ0cnVlIj5hc3NlcnRpdmUgKGFuZCBhdG9taWMpPC9k
aXY+CisKKzxkaXYgY2xhc3M9ImV4IiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIj48L2Rpdj4K
KzxkaXYgY2xhc3M9ImV4IiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBhcmlhLWRpc2FibGVk
PSJ0cnVlIj5kaXNhYmxlZDwvZGl2PgorPGRpdiBjbGFzcz0iZXgiIHJvbGU9ImJ1dHRvbiIgdGFi
aW5kZXg9IjAiIGFyaWEtcHJlc3NlZD0idHJ1ZSI+UHJlc3NlZC48L2Rpdj4KKzxkaXYgY2xhc3M9
ImV4IiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBhcmlhLXByZXNzZWQ9ImZhbHNlIj5Ob3Qg
UHJlc3NlZC48L2Rpdj4KKzxidXR0b24gY2xhc3M9ImV4Ij48L2J1dHRvbj4KKzxpbnB1dCBjbGFz
cz0iZXgiIHR5cGU9ImJ1dHRvbiI+CisKKzwhLS0gRklYTUU6IElucHV0cyBtaXNzaW5nIHBhcmVu
dE5vZGVJZCBodHRwOi8vd2Via2l0Lm9yZy9iLzEzMDE4MSAtLT4KKzxpbnB1dCBjbGFzcz0iZXgi
PgorPGlucHV0IGNsYXNzPSJleCIgcmVxdWlyZWQ+CisKKzwhLS0gTm90ZTogVGhlc2UgY29ycmVj
dGx5IHJlcG9ydCBjaGlsZE5vZGVJZHMubGVuZ3RoIG9mIDEgYi9jIG9mIHRoZWlyIHNoYWRvdyBE
T00gdHJlZS4gU2VlIGh0dHA6Ly93ZWJraXQub3JnL2IvMTMwMzAyIC0tPgorPGlucHV0IGNsYXNz
PSJleCIgYXJpYS1yZXF1aXJlZD0idHJ1ZSIgdmFsdWU9InJlcXVpcmVkIj4KKzxpbnB1dCBjbGFz
cz0iZXgiIGFyaWEtaW52YWxpZD0ic3BlbGxpbmciIHZhbHVlPSJpbnZhbGlkIHNwZWxsaW5nIj4K
KzxpbnB1dCBjbGFzcz0iZXgiIGFyaWEtaW52YWxpZD0iZm9vIiB2YWx1ZT0iZmFrZSB2YWx1ZSB3
aWxsIGV2YWwgdG8gdHJ1ZSI+Cis8aW5wdXQgY2xhc3M9ImV4IiByZWFkb25seSB2YWx1ZT0icmVh
ZG9ubHkiPgorCis8ZGl2IGNsYXNzPSJleCIgcm9sZT0idGV4dGJveCIgdGFiaW5kZXg9IjAiIGFy
aWEtcmVhZG9ubHk9InRydWUiPnJlYWRvbmx5PC9kaXY+Cis8aW5wdXQgY2xhc3M9ImV4IiBkaXNh
YmxlZCB2YWx1ZT0iZGlzYWJsZWQiPgorPGRpdiBjbGFzcz0iZXgiIHJvbGU9InRleHRib3giIHRh
YmluZGV4PSIwIiBhcmlhLWRpc2FibGVkPSJ0cnVlIj5kaXNhYmxlZDwvZGl2PgorCis8aW5wdXQg
Y2xhc3M9ImV4IiB0eXBlPSJjaGVja2JveCI+Cis8aW5wdXQgY2xhc3M9ImV4IiB0eXBlPSJjaGVj
a2JveCIgY2hlY2tlZD4KKzxkaXYgY2xhc3M9ImV4IiByb2xlPSJjaGVja2JveCI+dW5jaGVja2Vk
IChjaGVja2VkIHVuZGVmaW5lZCBldmFscyB0byBmYWxzZSBvbiBjaGVja2JveCk8L2Rpdj4KKzxk
aXYgY2xhc3M9ImV4IiByb2xlPSJjaGVja2JveCIgYXJpYS1jaGVja2VkPSJ0cnVlIj5jaGVja2Vk
PC9kaXY+Cis8ZGl2IGNsYXNzPSJleCIgcm9sZT0iY2hlY2tib3giIGFyaWEtY2hlY2tlZD0ibWl4
ZWQiPm1peGVkPC9kaXY+Cis8ZGl2IGNsYXNzPSJleCIgcm9sZT0iY2hlY2tib3giIGFyaWEtY2hl
Y2tlZD0iZmFsc2UiPnVuY2hlY2tlZDwvZGl2PgorCis8aW5wdXQgY2xhc3M9ImV4IiB0eXBlPSJy
YWRpbyI+Cis8aW5wdXQgY2xhc3M9ImV4IiB0eXBlPSJyYWRpbyIgY2hlY2tlZD4KKzxkaXYgY2xh
c3M9ImV4IiByb2xlPSJyYWRpbyI+dW5jaGVja2VkIChjaGVja2VkIHVuZGVmaW5lZCBldmFscyB0
byBmYWxzZSBvbiByYWRpbyk8L2Rpdj4KKzxkaXYgY2xhc3M9ImV4IiByb2xlPSJyYWRpbyIgYXJp
YS1jaGVja2VkPSJ0cnVlIj5jaGVja2VkPC9kaXY+Cis8ZGl2IGNsYXNzPSJleCIgcm9sZT0icmFk
aW8iIGFyaWEtY2hlY2tlZD0ibWl4ZWQiPnVuY2hlY2tlZCBbc2ljXSBtaXhlZCBzdGF0ZSB3aWxs
IG5vdCBiZSBleHBvc2VkIG9uIHJhZGlvcyBwZXIgQVJJQSBzcGVjLjwvZGl2PgorPGRpdiBjbGFz
cz0iZXgiIHJvbGU9InJhZGlvIiBhcmlhLWNoZWNrZWQ9ImZhbHNlIj51bmNoZWNrZWQ8L2Rpdj4K
KworPGlucHV0IGNsYXNzPSJleCIgYXJpYS1oaWRkZW49InRydWUiPgorPGlucHV0IGNsYXNzPSJl
eCIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgorCis8IS0tIEZJWE1FOiBJbWFnZXMgbWlzc2luZyBw
YXJlbnROb2RlSWQgaHR0cDovL3dlYmtpdC5vcmcvYi8xMzAxODEgLS0+Cis8aW1nIGNsYXNzPSJl
eCIgc3JjPSIuLzQwNC5naWYiPjwhLS0gaW1nOm5vdChbYWx0XSkgaWdub3JlZCBpZiBpdCBkb2Vz
IG5vdCBsb2FkLiAgLS0+Cis8aW1nIGNsYXNzPSJleCIgc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNl
NjQsUjBsR09EbGhFQUFSQUpFQ0FPSGg0VXBLU2dBQUFBQUFBQ0g1QkFFQUFBSUFMQUFBQUFBUUFC
RUFBQUlsbEI4Wng2M2I0b3RTVVdjdnl1ejVENGJpU0Q3QWlacm9XU1hhNXI3Q0pOT3ZyYTFSQVFB
NyI+Cis8aW1nIGNsYXNzPSJleCIgc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhF
QUFSQUpFQ0FPSGg0VXBLU2dBQUFBQUFBQ0g1QkFFQUFBSUFMQUFBQUFBUUFCRUFBQUlsbEI4Wng2
M2I0b3RTVVdjdnl1ejVENGJpU0Q3QWlacm9XU1hhNXI3Q0pOT3ZyYTFSQVFBNyIgYWx0PSIiPgor
PGltZyBjbGFzcz0iZXgiIHNyYz0iZGF0YTppbWFnZS9naWY7YmFzZTY0LFIwbEdPRGxoRUFBUkFK
RUNBT0hoNFVwS1NnQUFBQUFBQUNINUJBRUFBQUlBTEFBQUFBQVFBQkVBQUFJbGxCOFp4NjNiNG90
U1VXY3Z5dXo1RDRiaVNEN0FpWnJvV1NYYTVyN0NKTk92cmExUkFRQTciIGFsdD0ieCI+Cis8aW1n
IGNsYXNzPSJleCIgc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhFQUFSQUpFQ0FP
SGg0VXBLU2dBQUFBQUFBQ0g1QkFFQUFBSUFMQUFBQUFBUUFCRUFBQUlsbEI4Wng2M2I0b3RTVVdj
dnl1ejVENGJpU0Q3QWlacm9XU1hhNXI3Q0pOT3ZyYTFSQVFBNyIgYWx0PSJ4IiBhcmlhLWhpZGRl
bj0idHJ1ZSI+Cis8aW1nIGNsYXNzPSJleCIgc3JjPSJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBs
R09EbGhFQUFSQUpFQ0FPSGg0VXBLU2dBQUFBQUFBQ0g1QkFFQUFBSUFMQUFBQUFBUUFCRUFBQUls
bEI4Wng2M2I0b3RTVVdjdnl1ejVENGJpU0Q3QWlacm9XU1hhNXI3Q0pOT3ZyYTFSQVFBNyIgYWx0
PSJ4IiBzdHlsZT0iZGlzcGxheTpub25lOyI+CisKKzxzZWxlY3QgbXVsdGlwbGUgaWQ9ImZsb3dl
ZFRvMiI+CisgICAgPG9wdGlvbiBjbGFzcz0iZXgiIHNlbGVjdGVkPkZJWE1FOiBTZWxlY3RlZCBp
cyBmYWxzZS4gRXhwZWN0ZWQgdHJ1ZS4gaHR0cDovL3dlYmtpdC5vcmcvYi8xMjk4MzU8L29wdGlv
bj4KKyAgICA8b3B0aW9uIGNsYXNzPSJleCI+bm90IHNlbGVjdGVkPC9vcHRpb24+Cis8L3NlbGVj
dD4KKworPGlucHV0IGNsYXNzPSJleCIgcm9sZT0iY29tYm9ib3giIGFyaWEtb3ducz0ib3duZWRs
aXN0Ym94IGludmFsaWRJZFJlZiIgYXJpYS1jb250cm9scz0ib3duZWRsaXN0Ym94IGludmFsaWRJ
ZFJlZiI+Cis8ZGl2IHJvbGU9Imxpc3Rib3giIGNsYXNzPSJleCIgaWQ9Im93bmVkbGlzdGJveCI+
CisgICAgPGRpdiBjbGFzcz0iZXgiIHJvbGU9Im9wdGlvbiIgYXJpYS1zZWxlY3RlZD0idHJ1ZSI+
c2VsZWN0ZWQ8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJleCIgcm9sZT0ib3B0aW9uIiBhcmlhLXNl
bGVjdGVkPSJmYWxzZSI+bm90IHNlbGVjdGVkPC9kaXY+Cis8L2Rpdj4KKworPGRpdiByb2xlPSJ0
YWJsaXN0IiBjbGFzcz0iZXgiIGFyaWEtZmxvd3RvPSJmbG93ZWRUbzEgaW52YWxpZElkUmVmIGZs
b3dlZFRvMiI+CisgICAgPGRpdiBjbGFzcz0iZXgiIHJvbGU9InRhYiIgYXJpYS1zZWxlY3RlZD0i
dHJ1ZSI+c2VsZWN0ZWQ8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJleCIgcm9sZT0idGFiIiBhcmlh
LXNlbGVjdGVkPSJmYWxzZSI+bm90IHNlbGVjdGVkPC9kaXY+Cis8L2Rpdj4KKworPGRpdiByb2xl
PSJsaXN0Ym94IiBjbGFzcz0iZXgiIGFyaWEtbXVsdGlzZWxlY3RhYmxlPSJ0cnVlIj4KKyAgICA8
ZGl2IHJvbGU9Im9wdGlvbiIgYXJpYS1zZWxlY3RlZD0idHJ1ZSI+c2VsZWN0ZWQ8L2Rpdj4KKyAg
ICA8ZGl2IHJvbGU9Im9wdGlvbiIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiPm5vdCBzZWxlY3RlZDwv
ZGl2PgorICAgIDxkaXYgcm9sZT0ib3B0aW9uIiBhcmlhLXNlbGVjdGVkPSJ0cnVlIj5zZWxlY3Rl
ZDwvZGl2PgorPC9kaXY+CisKKzxkaXYgcm9sZT0ibGlzdGJveCIgYXJpYS1idXN5PSJ0cnVlIj4K
KyAgICA8ZGl2IGNsYXNzPSJleCIgcm9sZT0ib3B0aW9uIj5idXN5IChwYXJlbnQpPC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0iZXgiIHJvbGU9Im9wdGlvbiIgYXJpYS1idXN5PSJ0cnVlIj5idXN5IChz
ZWxmKTwvZGl2PgorPC9kaXY+CisKKzx1bCByb2xlPSJ0cmVlIiBjbGFzcz0iZXgiIGlkPSJmbG93
ZWRUbzEiIGFyaWEtYWN0aXZlZGVzY2VuZGFudD0iYWN0aXZlZGVzY2VuZGFudCI+CisgICAgPGxp
IGNsYXNzPSJleCIgcm9sZT0idHJlZWl0ZW0iIGFyaWEtZXhwYW5kZWQ9InRydWUiPmV4cGFuZGVk
PC9saT4KKyAgICA8bGkgY2xhc3M9ImV4IiByb2xlPSJ0cmVlaXRlbSIgYXJpYS1leHBhbmRlZD0i
ZmFsc2UiIGlkPSJhY3RpdmVkZXNjZW5kYW50IiBhcmlhLXNlbGVjdGVkPSJ0cnVlIj5jb2xsYXBz
ZWQ8L2xpPgorICAgIDxsaSBjbGFzcz0iZXgiIHJvbGU9InRyZWVpdGVtIiBhcmlhLWV4cGFuZGVk
PSJ1bmRlZmluZWQiPmV4cGFuZGVkPC9saT4KKzwvdWw+CisKKzwhLS0gRnVsbCB0ZXN0IG9mIG1v
dXNlRXZlbnROb2RlSWQgaW4gZ2V0QWNjZXNzaWJpbGl0eVByb3BlcnRpZXNGb3JOb2RlX21vdXNl
RXZlbnROb2RlSWQuaHRtbC4gLS0+Cis8ZGl2IGNsYXNzPSJleCIgb25jbGljaz0idm9pZCgwKTsi
PmNsaWNrPC9kaXY+CisKKzwvZGl2PgorCis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+
CisKK2Z1bmN0aW9uICQoc2VsZWN0b3IpIHsKKyAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbChzZWxlY3Rvcik7Cit9CitmdW5jdGlvbiBjbGVhbnVwKCkgeworICAgIC8vIEhpZGUg
dGhlIHRlc3QgZWxlbWVudCBjb250YWluZXIgdG8gYXZvaWQgaXJyZWxldmFudCBvdXRwdXQgZGlm
ZnMgb24gc3Vic2VxdWVudCB1cGRhdGVzLgorICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJl
eGFtcGxlcyIpLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKSB7
CisKKyAgICB2YXIgZXhhbXBsZXMgPSBbXTsKKyAgICB2YXIgZG9jdW1lbnROb2RlSWQgPSBudWxs
OworCisgICAgZnVuY3Rpb24gb25Hb3REb2N1bWVudChyZXNwb25zZSkgeworICAgICAgICBJbnNw
ZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVzcG9uc2UpOworICAgICAgICBkb2N1bWVudE5vZGVJ
ZCA9IHJlc3BvbnNlLnJlc3VsdC5yb290Lm5vZGVJZDsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZCgiRE9NLmdldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZSIsIHsibm9k
ZUlkIjogZG9jdW1lbnROb2RlSWR9LCBvbkdvdEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9yRG9j
dW1lbnROb2RlKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvbkdvdEFjY2Vzc2liaWxpdHlQcm9w
ZXJ0aWVzRm9yRG9jdW1lbnROb2RlKHJlc3BvbnNlKSB7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
Y2hlY2tGb3JFcnJvcihyZXNwb25zZSk7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCIjZG9j
dW1lbnQiKTsKKyAgICAgICAgbG9nQWNjZXNzaWJpbGl0eVByb3BlcnRpZXMocmVzcG9uc2UucmVz
dWx0LnByb3BlcnRpZXMpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiXG4iKTsKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRE9NLnF1ZXJ5U2VsZWN0b3JBbGwiLCB7Im5v
ZGVJZCI6IGRvY3VtZW50Tm9kZUlkLCAic2VsZWN0b3IiOiAiLmV4In0sIG9uR290UXVlcnlTZWxl
Y3RvckFsbCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb25Hb3RRdWVyeVNlbGVjdG9yQWxsKHJl
c3BvbnNlKSB7CisgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZSk7
CisgICAgICAgIGV4YW1wbGVzID0gcmVzcG9uc2UucmVzdWx0Lm5vZGVJZHM7CisgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJUb3RhbCBlbGVtZW50cyB0byBiZSB0ZXN0ZWQ6ICIgKyBleGFtcGxl
cy5sZW5ndGggKyAiLiIpOworICAgICAgICBsb29wKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
bG9vcCgpIHsKKyAgICAgICAgaWYgKGV4YW1wbGVzLmxlbmd0aCkgeworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRE9NLmdldE91dGVySFRNTCIsIHsibm9kZUlkIjogZXhh
bXBsZXNbZXhhbXBsZXMubGVuZ3RoLTFdfSwgb25Hb3RPdXRlckhUTUwpOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgZmluaXNoVGVzdCgpOworICAgICAgICB9CisgICAgfQorCisgICAg
ZnVuY3Rpb24gb25Hb3RPdXRlckhUTUwocmVzcG9uc2UpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5jaGVja0ZvckVycm9yKHJlc3BvbnNlKTsKKyAgICAgICAgdmFyIG91dGVySFRNTCA9IHJlc3Bv
bnNlLnJlc3VsdC5vdXRlckhUTUw7CisgICAgICAgIG91dGVySFRNTCA9IG91dGVySFRNTC5yZXBs
YWNlKC8gY2xhc3M9ImV4Ii9nLCAiIik7IC8vIHJlbW92ZSBhbnkgZHVwbGljYXRlZCwgdW5uZWNl
c3NhcnkgY2xhc3MgYXR0cmlidXRlcworICAgICAgICBvdXRlckhUTUwgPSBvdXRlckhUTUwucmVw
bGFjZSgvO2Jhc2U2NCwuKj8iLywgIi4uLlwiIik7IC8vIHN1cHByZXNzIGZ1bGwgZGF0YSBVUklz
IGluIG91dHB1dAorICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiXG4iICsgb3V0ZXJIVE1MKTsK
KyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRE9NLmdldEFjY2Vzc2liaWxpdHlQ
cm9wZXJ0aWVzRm9yTm9kZSIsIHsibm9kZUlkIjogZXhhbXBsZXNbZXhhbXBsZXMubGVuZ3RoLTFd
fSwgb25Hb3RBY2Nlc3NpYmlsaXR5UHJvcGVydGllcyk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
b25Hb3RBY2Nlc3NpYmlsaXR5UHJvcGVydGllcyhyZXNwb25zZSkgeworICAgICAgICBJbnNwZWN0
b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVzcG9uc2UpOworICAgICAgICBsb2dBY2Nlc3NpYmlsaXR5
UHJvcGVydGllcyhyZXNwb25zZS5yZXN1bHQucHJvcGVydGllcyk7CisgICAgICAgIGV4YW1wbGVz
LnBvcCgpOworICAgICAgICBsb29wKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9nQWNjZXNz
aWJpbGl0eVByb3BlcnRpZXMocHJvcGVydGllcykgeworICAgICAgICBmb3IgKHZhciBrZXkgaW4g
cHJvcGVydGllcykgeworICAgICAgICAgICAgdmFyIHZhbHVlID0gcHJvcGVydGllc1trZXldOwor
ICAgICAgICAgICAgc3dpdGNoIChrZXkpeworICAgICAgICAgICAgY2FzZSAibm9kZUlkIjoKKyAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGNhc2UgImFjdGl2ZURlc2NlbmRh
bnROb2RlSWQiOgorICAgICAgICAgICAgY2FzZSAibW91c2VFdmVudE5vZGVJZCI6CisgICAgICAg
ICAgICBjYXNlICJwYXJlbnROb2RlSWQiOgorICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFs
dWUgPT09ICJudW1iZXIiKQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
ICAgICIgKyBrZXkgKyAiOiBleGlzdHMiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgImNoaWxkTm9kZUlkcyI6CisgICAgICAgICAgICBjYXNlICJjb250cm9sbGVk
Tm9kZUlkcyI6CisgICAgICAgICAgICBjYXNlICJmbG93ZWROb2RlSWRzIjoKKyAgICAgICAgICAg
IGNhc2UgIm93bmVkTm9kZUlkcyI6CisgICAgICAgICAgICBjYXNlICJzZWxlY3RlZENoaWxkTm9k
ZUlkcyI6CisgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gIm9iamVjdCIgJiYg
dmFsdWUubGVuZ3RoKQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiICAg
ICIgKyBrZXkgKyAiLmxlbmd0aDogIiArIHZhbHVlLmxlbmd0aCk7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCIgICAgIiArIGtleSArICI6ICIgKyB2YWx1ZSk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwgeyJleHByZXNzaW9uIjog
ImNsZWFudXAoKSJ9LCBmdW5jdGlvbigpeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21w
bGV0ZVRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisKKworICAgIEluc3BlY3RvclRlc3Qu
c2VuZENvbW1hbmQoIkRPTS5nZXREb2N1bWVudCIsIHt9LCBvbkdvdERvY3VtZW50KTsKKworfQor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZG9tL2dldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZV9saXZlUmVnaW9uLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0QWNjZXNzaWJpbGl0eVBy
b3BlcnRpZXNGb3JOb2RlX2xpdmVSZWdpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkNWM0
YzI1OTlhOGE5ZTc0MmYwMDQ3MjlhZTAyY2YyYzg2ODQ3MzgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2dldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9k
ZV9saXZlUmVnaW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3NSBAQAorQ2hlY2tpbmcgV2Vi
IEluc3BlY3RvciBwcm90b2NvbCAoc3BlY2lmaWNhbGx5IGxpdmUgcmVnaW9uIHByb3BlcnRpZXMp
IGZvciB0aGUgQWNjZXNzaWJpbGl0eSBOb2RlIEluc3BlY3Rvci4KKworVG90YWwgZWxlbWVudHMg
dG8gYmUgdGVzdGVkOiAzMS4KKworPGRpdiByb2xlPSJhbGVydCIgYXJpYS1yZWxldmFudD0idGV4
dCB0ZXh0Ij5yZWxldmFudDogdGV4dCAoZHVwbGljYXRlKTwvZGl2PgorICAgIGV4aXN0czogdHJ1
ZQorICAgIGxpdmVSZWdpb25BdG9taWM6IHRydWUKKyAgICBsaXZlUmVnaW9uUmVsZXZhbnQ6IHRl
eHQKKyAgICBsaXZlUmVnaW9uU3RhdHVzOiBhc3NlcnRpdmUKKworPGRpdiByb2xlPSJhbGVydCIg
YXJpYS1yZWxldmFudD0iYWRkaXRpb25zIHJlbW92YWxzIHJlbW92YWxzIj5yZWxldmFudDogYWRk
aXRpb25zIHJlbW92YWxzIChkdXBsaWNhdGUpPC9kaXY+CisgICAgZXhpc3RzOiB0cnVlCisgICAg
bGl2ZVJlZ2lvbkF0b21pYzogdHJ1ZQorICAgIGxpdmVSZWdpb25SZWxldmFudDogYWRkaXRpb25z
LHJlbW92YWxzCisgICAgbGl2ZVJlZ2lvblN0YXR1czogYXNzZXJ0aXZlCisKKzxkaXYgcm9sZT0i
YWxlcnQiIGFyaWEtcmVsZXZhbnQ9InRleHQgcmVtb3ZhbHMgYWRkaXRpb25zIj5yZWxldmFudDog
YWxsIChpbXBsaWNpdCk8L2Rpdj4KKyAgICBleGlzdHM6IHRydWUKKyAgICBsaXZlUmVnaW9uQXRv
bWljOiB0cnVlCisgICAgbGl2ZVJlZ2lvblJlbGV2YW50OiBhZGRpdGlvbnMscmVtb3ZhbHMsdGV4
dAorICAgIGxpdmVSZWdpb25TdGF0dXM6IGFzc2VydGl2ZQorCis8ZGl2IHJvbGU9ImFsZXJ0IiBh
cmlhLXJlbGV2YW50PSJ0ZXh0IGFkZGl0aW9ucyByZW1vdmFscyI+cmVsZXZhbnQ6IGFsbCAoaW1w
bGljaXQpPC9kaXY+CisgICAgZXhpc3RzOiB0cnVlCisgICAgbGl2ZVJlZ2lvbkF0b21pYzogdHJ1
ZQorICAgIGxpdmVSZWdpb25SZWxldmFudDogYWRkaXRpb25zLHJlbW92YWxzLHRleHQKKyAgICBs
aXZlUmVnaW9uU3RhdHVzOiBhc3NlcnRpdmUKKworPGRpdiByb2xlPSJhbGVydCIgYXJpYS1yZWxl
dmFudD0iYWRkaXRpb25zIHJlbW92YWxzIHRleHQiPnJlbGV2YW50OiBhbGwgKGltcGxpY2l0KTwv
ZGl2PgorICAgIGV4aXN0czogdHJ1ZQorICAgIGxpdmVSZWdpb25BdG9taWM6IHRydWUKKyAgICBs
aXZlUmVnaW9uUmVsZXZhbnQ6IGFkZGl0aW9ucyxyZW1vdmFscyx0ZXh0CisgICAgbGl2ZVJlZ2lv
blN0YXR1czogYXNzZXJ0aXZlCisKKzxkaXYgcm9sZT0iYWxlcnQiIGFyaWEtcmVsZXZhbnQ9ImFs
bCI+cmVsZXZhbnQ6IGFsbCAoZXhwbGljaXQpPC9kaXY+CisgICAgZXhpc3RzOiB0cnVlCisgICAg
bGl2ZVJlZ2lvbkF0b21pYzogdHJ1ZQorICAgIGxpdmVSZWdpb25SZWxldmFudDogYWRkaXRpb25z
LHJlbW92YWxzLHRleHQKKyAgICBsaXZlUmVnaW9uU3RhdHVzOiBhc3NlcnRpdmUKKworPGRpdiBy
b2xlPSJhbGVydCIgYXJpYS1yZWxldmFudD0iYWRkaXRpb25zIj5yZWxldmFudDogYWRkaXRpb25z
PC9kaXY+CisgICAgZXhpc3RzOiB0cnVlCisgICAgbGl2ZVJlZ2lvbkF0b21pYzogdHJ1ZQorICAg
IGxpdmVSZWdpb25SZWxldmFudDogYWRkaXRpb25zCisgICAgbGl2ZVJlZ2lvblN0YXR1czogYXNz
ZXJ0aXZlCisKKzxkaXYgcm9sZT0iYWxlcnQiIGFyaWEtcmVsZXZhbnQ9InRleHQiPnJlbGV2YW50
OiB0ZXh0PC9kaXY+CisgICAgZXhpc3RzOiB0cnVlCisgICAgbGl2ZVJlZ2lvbkF0b21pYzogdHJ1
ZQorICAgIGxpdmVSZWdpb25SZWxldmFudDogdGV4dAorICAgIGxpdmVSZWdpb25TdGF0dXM6IGFz
c2VydGl2ZQorCis8ZGl2IHJvbGU9ImFsZXJ0IiBhcmlhLXJlbGV2YW50PSJyZW1vdmFscyI+cmVs
ZXZhbnQ6IHJlbW92YWxzPC9kaXY+CisgICAgZXhpc3RzOiB0cnVlCisgICAgbGl2ZVJlZ2lvbkF0
b21pYzogdHJ1ZQorICAgIGxpdmVSZWdpb25SZWxldmFudDogcmVtb3ZhbHMKKyAgICBsaXZlUmVn
aW9uU3RhdHVzOiBhc3NlcnRpdmUKKworPGRpdiByb2xlPSJhbGVydCIgYXJpYS1yZWxldmFudD0i
cmVtb3ZhbHMgdGV4dCI+cmVsZXZhbnQ6IHJlbW92YWxzIHRleHQ8L2Rpdj4KKyAgICBleGlzdHM6
IHRydWUKKyAgICBsaXZlUmVnaW9uQXRvbWljOiB0cnVlCisgICAgbGl2ZVJlZ2lvblJlbGV2YW50
OiByZW1vdmFscyx0ZXh0CisgICAgbGl2ZVJlZ2lvblN0YXR1czogYXNzZXJ0aXZlCisKKzxkaXYg
cm9sZT0iYWxlcnQiIGFyaWEtcmVsZXZhbnQ9ImFkZGl0aW9ucyByZW1vdmFscyI+cmVsZXZhbnQ6
IGFkZGl0aW9ucyByZW1vdmFsczwvZGl2PgorICAgIGV4aXN0czogdHJ1ZQorICAgIGxpdmVSZWdp
b25BdG9taWM6IHRydWUKKyAgICBsaXZlUmVnaW9uUmVsZXZhbnQ6IGFkZGl0aW9ucyxyZW1vdmFs
cworICAgIGxpdmVSZWdpb25TdGF0dXM6IGFzc2VydGl2ZQorCis8ZGl2IHJvbGU9ImFsZXJ0IiBh
cmlhLXJlbGV2YW50PSJ0ZXh0IGFkZGl0aW9ucyI+cmVsZXZhbnQ6IGFkZGl0aW9ucyB0ZXh0IChv
cmRlciBzaG91bGQgYmUgbm9ybWFsaXplZCk8L2Rpdj4KKyAgICBleGlzdHM6IHRydWUKKyAgICBs
aXZlUmVnaW9uQXRvbWljOiB0cnVlCisgICAgbGl2ZVJlZ2lvblJlbGV2YW50OiBhZGRpdGlvbnMs
dGV4dAorICAgIGxpdmVSZWdpb25TdGF0dXM6IGFzc2VydGl2ZQorCis8ZGl2IHJvbGU9ImFsZXJ0
IiBhcmlhLXJlbGV2YW50PSJhZGRpdGlvbnMgdGV4dCI+cmVsZXZhbnQ6IGFkZGl0aW9ucyB0ZXh0
IChleHBsaWNpdCk8L2Rpdj4KKyAgICBleGlzdHM6IHRydWUKKyAgICBsaXZlUmVnaW9uQXRvbWlj
OiB0cnVlCisgICAgbGl2ZVJlZ2lvblJlbGV2YW50OiBhZGRpdGlvbnMsdGV4dAorICAgIGxpdmVS
ZWdpb25TdGF0dXM6IGFzc2VydGl2ZQorCis8ZGl2IHJvbGU9ImFsZXJ0Ij5yZWxldmFudDogYWRk
aXRpb25zIHRleHQgKGltcGxpY2l0KTwvZGl2PgorICAgIGV4aXN0czogdHJ1ZQorICAgIGxpdmVS
ZWdpb25BdG9taWM6IHRydWUKKyAgICBsaXZlUmVnaW9uUmVsZXZhbnQ6IGFkZGl0aW9ucyx0ZXh0
CisgICAgbGl2ZVJlZ2lvblN0YXR1czogYXNzZXJ0aXZlCisKKzxkaXYgcm9sZT0idGltZXIiPm9m
ZiAoZGVmYXVsdCk8L2Rpdj4KKyAgICBleGlzdHM6IHRydWUKKworPGRpdiByb2xlPSJzdGF0dXMi
IGFyaWEtbGl2ZT0ib2ZmIj5vZmY8L2Rpdj4KKyAgICBleGlzdHM6IHRydWUKKworPGRpdiByb2xl
PSJzdGF0dXMiIGFyaWEtbGl2ZT0iYXNzZXJ0aXZlIj5hc3NlcnRpdmU8L2Rpdj4KKyAgICBleGlz
dHM6IHRydWUKKyAgICBsaXZlUmVnaW9uQXRvbWljOiB0cnVlCisgICAgbGl2ZVJlZ2lvblJlbGV2
YW50OiBhZGRpdGlvbnMsdGV4dAorICAgIGxpdmVSZWdpb25TdGF0dXM6IGFzc2VydGl2ZQorCis8
ZGl2IHJvbGU9InN0YXR1cyI+cG9saXRlIChkZWZhdWx0KTwvZGl2PgorICAgIGV4aXN0czogdHJ1
ZQorICAgIGxpdmVSZWdpb25BdG9taWM6IHRydWUKKyAgICBsaXZlUmVnaW9uUmVsZXZhbnQ6IGFk
ZGl0aW9ucyx0ZXh0CisgICAgbGl2ZVJlZ2lvblN0YXR1czogcG9saXRlCisKKzxkaXYgcm9sZT0i
bWFycXVlZSI+b2ZmIChkZWZhdWx0KTwvZGl2PgorICAgIGV4aXN0czogdHJ1ZQorCis8ZGl2IHJv
bGU9ImxvZyIgYXJpYS1saXZlPSJvZmYiPm9mZjwvZGl2PgorICAgIGV4aXN0czogdHJ1ZQorCis8
ZGl2IHJvbGU9ImxvZyIgYXJpYS1saXZlPSJhc3NlcnRpdmUiPmFzc2VydGl2ZTwvZGl2PgorICAg
IGV4aXN0czogdHJ1ZQorICAgIGxpdmVSZWdpb25BdG9taWM6IGZhbHNlCisgICAgbGl2ZVJlZ2lv
blJlbGV2YW50OiBhZGRpdGlvbnMsdGV4dAorICAgIGxpdmVSZWdpb25TdGF0dXM6IGFzc2VydGl2
ZQorCis8ZGl2IHJvbGU9ImxvZyI+cG9saXRlIChkZWZhdWx0KTwvZGl2PgorICAgIGV4aXN0czog
dHJ1ZQorICAgIGxpdmVSZWdpb25BdG9taWM6IGZhbHNlCisgICAgbGl2ZVJlZ2lvblJlbGV2YW50
OiBhZGRpdGlvbnMsdGV4dAorICAgIGxpdmVSZWdpb25TdGF0dXM6IHBvbGl0ZQorCis8ZGl2IHJv
bGU9ImFsZXJ0IiBhcmlhLWxpdmU9InBvbGl0ZSI+cG9saXRlPC9kaXY+CisgICAgZXhpc3RzOiB0
cnVlCisgICAgbGl2ZVJlZ2lvbkF0b21pYzogdHJ1ZQorICAgIGxpdmVSZWdpb25SZWxldmFudDog
YWRkaXRpb25zLHRleHQKKyAgICBsaXZlUmVnaW9uU3RhdHVzOiBwb2xpdGUKKworPGRpdiByb2xl
PSJhbGVydCIgYXJpYS1saXZlPSJvZmYiPm9mZjwvZGl2PgorICAgIGV4aXN0czogdHJ1ZQorCis8
ZGl2IHJvbGU9ImFsZXJ0Ij5hc3NlcnRpdmUgKGRlZmF1bHQpPC9kaXY+CisgICAgZXhpc3RzOiB0
cnVlCisgICAgbGl2ZVJlZ2lvbkF0b21pYzogdHJ1ZQorICAgIGxpdmVSZWdpb25SZWxldmFudDog
YWRkaXRpb25zLHRleHQKKyAgICBsaXZlUmVnaW9uU3RhdHVzOiBhc3NlcnRpdmUKKworPGRpdiBy
b2xlPSJncm91cCIgYXJpYS1saXZlPSJhc3NlcnRpdmUiIGFyaWEtYnVzeT0idHJ1ZSIgYXJpYS1h
dG9taWM9ImZhbHNlIj5hc3NlcnRpdmU8L2Rpdj4KKyAgICBleGlzdHM6IHRydWUKKyAgICBidXN5
OiB0cnVlCisgICAgbGl2ZVJlZ2lvbkF0b21pYzogZmFsc2UKKyAgICBsaXZlUmVnaW9uUmVsZXZh
bnQ6IGFkZGl0aW9ucyx0ZXh0CisgICAgbGl2ZVJlZ2lvblN0YXR1czogYXNzZXJ0aXZlCisKKzxk
aXYgcm9sZT0iZ3JvdXAiIGFyaWEtbGl2ZT0icG9saXRlIiBhcmlhLWJ1c3k9InRydWUiIGFyaWEt
YXRvbWljPSJmYWxzZSI+cG9saXRlPC9kaXY+CisgICAgZXhpc3RzOiB0cnVlCisgICAgYnVzeTog
dHJ1ZQorICAgIGxpdmVSZWdpb25BdG9taWM6IGZhbHNlCisgICAgbGl2ZVJlZ2lvblJlbGV2YW50
OiBhZGRpdGlvbnMsdGV4dAorICAgIGxpdmVSZWdpb25TdGF0dXM6IHBvbGl0ZQorCis8ZGl2IHJv
bGU9Imdyb3VwIiBhcmlhLWxpdmU9Im9mZiIgYXJpYS1idXN5PSJ0cnVlIiBhcmlhLWF0b21pYz0i
ZmFsc2UiPm9mZjwvZGl2PgorICAgIGV4aXN0czogdHJ1ZQorICAgIGJ1c3k6IHRydWUKKworPGRp
diByb2xlPSJncm91cCIgYXJpYS1saXZlPSJhc3NlcnRpdmUiIGFyaWEtYnVzeT0idHJ1ZSIgYXJp
YS1hdG9taWM9InRydWUiPmFzc2VydGl2ZTwvZGl2PgorICAgIGV4aXN0czogdHJ1ZQorICAgIGJ1
c3k6IHRydWUKKyAgICBsaXZlUmVnaW9uQXRvbWljOiB0cnVlCisgICAgbGl2ZVJlZ2lvblJlbGV2
YW50OiBhZGRpdGlvbnMsdGV4dAorICAgIGxpdmVSZWdpb25TdGF0dXM6IGFzc2VydGl2ZQorCis8
ZGl2IHJvbGU9Imdyb3VwIiBhcmlhLWxpdmU9InBvbGl0ZSIgYXJpYS1idXN5PSJ0cnVlIiBhcmlh
LWF0b21pYz0idHJ1ZSI+cG9saXRlPC9kaXY+CisgICAgZXhpc3RzOiB0cnVlCisgICAgYnVzeTog
dHJ1ZQorICAgIGxpdmVSZWdpb25BdG9taWM6IHRydWUKKyAgICBsaXZlUmVnaW9uUmVsZXZhbnQ6
IGFkZGl0aW9ucyx0ZXh0CisgICAgbGl2ZVJlZ2lvblN0YXR1czogcG9saXRlCisKKzxkaXYgcm9s
ZT0iZ3JvdXAiIGFyaWEtbGl2ZT0ib2ZmIiBhcmlhLWJ1c3k9InRydWUiIGFyaWEtYXRvbWljPSJ0
cnVlIj5vZmY8L2Rpdj4KKyAgICBleGlzdHM6IHRydWUKKyAgICBidXN5OiB0cnVlCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0QWNjZXNzaWJpbGl0eVByb3BlcnRp
ZXNGb3JOb2RlX2xpdmVSZWdpb24uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vZ2V0
QWNjZXNzaWJpbGl0eVByb3BlcnRpZXNGb3JOb2RlX2xpdmVSZWdpb24uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41YzFhMjYwNTY5YWIwYjg3NzNlNDlmNDI4NmNiZTRkMDg3NGMxZGIyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9nZXRBY2Nlc3NpYmlsaXR5UHJvcGVydGll
c0Zvck5vZGVfbGl2ZVJlZ2lvbi5odG1sCkBAIC0wLDAgKzEsMTI4IEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25Mb2FkPSJydW5UZXN0KCkiPgorCis8cD5DaGVja2luZyBXZWIgSW5zcGVjdG9yIHBy
b3RvY29sIChzcGVjaWZpY2FsbHkgbGl2ZSByZWdpb24gcHJvcGVydGllcykgZm9yIHRoZSBBY2Nl
c3NpYmlsaXR5IE5vZGUgSW5zcGVjdG9yLjwvcD4KKworPGRpdiBpZD0iZXhhbXBsZXMiPgorCisJ
PGRpdiBjbGFzcz0iZXgiIHJvbGU9Imdyb3VwIiBhcmlhLWxpdmU9Im9mZiIgYXJpYS1idXN5PSJ0
cnVlIiBhcmlhLWF0b21pYz0idHJ1ZSI+b2ZmPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iZXgiIHJv
bGU9Imdyb3VwIiBhcmlhLWxpdmU9InBvbGl0ZSIgYXJpYS1idXN5PSJ0cnVlIiBhcmlhLWF0b21p
Yz0idHJ1ZSI+cG9saXRlPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iZXgiIHJvbGU9Imdyb3VwIiBh
cmlhLWxpdmU9ImFzc2VydGl2ZSIgYXJpYS1idXN5PSJ0cnVlIiBhcmlhLWF0b21pYz0idHJ1ZSI+
YXNzZXJ0aXZlPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iZXgiIHJvbGU9Imdyb3VwIiBhcmlhLWxp
dmU9Im9mZiIgYXJpYS1idXN5PSJ0cnVlIiBhcmlhLWF0b21pYz0iZmFsc2UiPm9mZjwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9ImV4IiByb2xlPSJncm91cCIgYXJpYS1saXZlPSJwb2xpdGUiIGFyaWEt
YnVzeT0idHJ1ZSIgYXJpYS1hdG9taWM9ImZhbHNlIj5wb2xpdGU8L2Rpdj4KKyAgICA8ZGl2IGNs
YXNzPSJleCIgcm9sZT0iZ3JvdXAiIGFyaWEtbGl2ZT0iYXNzZXJ0aXZlIiBhcmlhLWJ1c3k9InRy
dWUiIGFyaWEtYXRvbWljPSJmYWxzZSI+YXNzZXJ0aXZlPC9kaXY+CisgICAgCisgICAgPGRpdiBj
bGFzcz0iZXgiIHJvbGU9ImFsZXJ0Ij5hc3NlcnRpdmUgKGRlZmF1bHQpPC9kaXY+CisJPGRpdiBj
bGFzcz0iZXgiIHJvbGU9ImFsZXJ0IiBhcmlhLWxpdmU9Im9mZiI+b2ZmPC9kaXY+CisJPGRpdiBj
bGFzcz0iZXgiIHJvbGU9ImFsZXJ0IiBhcmlhLWxpdmU9InBvbGl0ZSI+cG9saXRlPC9kaXY+CisJ
PGRpdiBjbGFzcz0iZXgiIHJvbGU9ImxvZyI+cG9saXRlIChkZWZhdWx0KTwvZGl2PgorCTxkaXYg
Y2xhc3M9ImV4IiByb2xlPSJsb2ciIGFyaWEtbGl2ZT0iYXNzZXJ0aXZlIj5hc3NlcnRpdmU8L2Rp
dj4KKwk8ZGl2IGNsYXNzPSJleCIgcm9sZT0ibG9nIiBhcmlhLWxpdmU9Im9mZiI+b2ZmPC9kaXY+
CisJPGRpdiBjbGFzcz0iZXgiIHJvbGU9Im1hcnF1ZWUiPm9mZiAoZGVmYXVsdCk8L2Rpdj4KKwk8
ZGl2IGNsYXNzPSJleCIgcm9sZT0ic3RhdHVzIj5wb2xpdGUgKGRlZmF1bHQpPC9kaXY+CisJPGRp
diBjbGFzcz0iZXgiIHJvbGU9InN0YXR1cyIgYXJpYS1saXZlPSJhc3NlcnRpdmUiPmFzc2VydGl2
ZTwvZGl2PgorCTxkaXYgY2xhc3M9ImV4IiByb2xlPSJzdGF0dXMiIGFyaWEtbGl2ZT0ib2ZmIj5v
ZmY8L2Rpdj4KKwk8ZGl2IGNsYXNzPSJleCIgcm9sZT0idGltZXIiPm9mZiAoZGVmYXVsdCk8L2Rp
dj4KKworICAgIDxkaXYgY2xhc3M9ImV4IiByb2xlPSJhbGVydCI+cmVsZXZhbnQ6IGFkZGl0aW9u
cyB0ZXh0IChpbXBsaWNpdCk8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJleCIgcm9sZT0iYWxlcnQi
IGFyaWEtcmVsZXZhbnQ9ImFkZGl0aW9ucyB0ZXh0Ij5yZWxldmFudDogYWRkaXRpb25zIHRleHQg
KGV4cGxpY2l0KTwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImV4IiByb2xlPSJhbGVydCIgYXJpYS1y
ZWxldmFudD0idGV4dCBhZGRpdGlvbnMiPnJlbGV2YW50OiBhZGRpdGlvbnMgdGV4dCAob3JkZXIg
c2hvdWxkIGJlIG5vcm1hbGl6ZWQpPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iZXgiIHJvbGU9ImFs
ZXJ0IiBhcmlhLXJlbGV2YW50PSJhZGRpdGlvbnMgcmVtb3ZhbHMiPnJlbGV2YW50OiBhZGRpdGlv
bnMgcmVtb3ZhbHM8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJleCIgcm9sZT0iYWxlcnQiIGFyaWEt
cmVsZXZhbnQ9InJlbW92YWxzIHRleHQiPnJlbGV2YW50OiByZW1vdmFscyB0ZXh0PC9kaXY+Cisg
ICAgPGRpdiBjbGFzcz0iZXgiIHJvbGU9ImFsZXJ0IiBhcmlhLXJlbGV2YW50PSJyZW1vdmFscyI+
cmVsZXZhbnQ6IHJlbW92YWxzPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iZXgiIHJvbGU9ImFsZXJ0
IiBhcmlhLXJlbGV2YW50PSJ0ZXh0Ij5yZWxldmFudDogdGV4dDwvZGl2PgorICAgIDxkaXYgY2xh
c3M9ImV4IiByb2xlPSJhbGVydCIgYXJpYS1yZWxldmFudD0iYWRkaXRpb25zIj5yZWxldmFudDog
YWRkaXRpb25zPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iZXgiIHJvbGU9ImFsZXJ0IiBhcmlhLXJl
bGV2YW50PSJhbGwiPnJlbGV2YW50OiBhbGwgKGV4cGxpY2l0KTwvZGl2PgorICAgIDxkaXYgY2xh
c3M9ImV4IiByb2xlPSJhbGVydCIgYXJpYS1yZWxldmFudD0iYWRkaXRpb25zIHJlbW92YWxzIHRl
eHQiPnJlbGV2YW50OiBhbGwgKGltcGxpY2l0KTwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImV4IiBy
b2xlPSJhbGVydCIgYXJpYS1yZWxldmFudD0idGV4dCBhZGRpdGlvbnMgcmVtb3ZhbHMiPnJlbGV2
YW50OiBhbGwgKGltcGxpY2l0KTwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImV4IiByb2xlPSJhbGVy
dCIgYXJpYS1yZWxldmFudD0idGV4dCByZW1vdmFscyBhZGRpdGlvbnMiPnJlbGV2YW50OiBhbGwg
KGltcGxpY2l0KTwvZGl2PgorICAgIDxkaXYgY2xhc3M9ImV4IiByb2xlPSJhbGVydCIgYXJpYS1y
ZWxldmFudD0iYWRkaXRpb25zIHJlbW92YWxzIHJlbW92YWxzIj5yZWxldmFudDogYWRkaXRpb25z
IHJlbW92YWxzIChkdXBsaWNhdGUpPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iZXgiIHJvbGU9ImFs
ZXJ0IiBhcmlhLXJlbGV2YW50PSJ0ZXh0IHRleHQiPnJlbGV2YW50OiB0ZXh0IChkdXBsaWNhdGUp
PC9kaXY+CisKKzwvZGl2PgorCis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK2Z1
bmN0aW9uICQoaWQpIHsKKyAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwor
fQorCitmdW5jdGlvbiBjbGVhbnVwKCkgeworICAgIC8vIEhpZGUgdGhlIHRlc3QgZWxlbWVudCBj
b250YWluZXIgdG8gYXZvaWQgaXJyZWxldmFudCBvdXRwdXQgZGlmZnMgb24gc3Vic2VxdWVudCB1
cGRhdGVzLgorICAgICQoImV4YW1wbGVzIikuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKK30KKwor
ZnVuY3Rpb24gdGVzdCgpIHsKKworICAgIHZhciBleGFtcGxlcyA9IFtdOworICAgIHZhciBkb2N1
bWVudE5vZGVJZCA9IG51bGw7CisgICAgdmFyIGJvZHlOb2RlSWQgPSBudWxsOworCisgICAgZnVu
Y3Rpb24gb25Hb3REb2N1bWVudChyZXNwb25zZSkgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmNo
ZWNrRm9yRXJyb3IocmVzcG9uc2UpOworICAgICAgICBkb2N1bWVudE5vZGVJZCA9IHJlc3BvbnNl
LnJlc3VsdC5yb290Lm5vZGVJZDsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
RE9NLnF1ZXJ5U2VsZWN0b3JBbGwiLCB7Im5vZGVJZCI6IGRvY3VtZW50Tm9kZUlkLCAic2VsZWN0
b3IiOiAiLmV4In0sIG9uR290UXVlcnlTZWxlY3RvckFsbCk7CisgICAgfQorCisgICAgZnVuY3Rp
b24gb25Hb3RRdWVyeVNlbGVjdG9yQWxsKHJlc3BvbnNlKSB7CisgICAgICAgIEluc3BlY3RvclRl
c3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZSk7CisgICAgICAgIGV4YW1wbGVzID0gcmVzcG9uc2Uu
cmVzdWx0Lm5vZGVJZHM7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJUb3RhbCBlbGVtZW50
cyB0byBiZSB0ZXN0ZWQ6ICIgKyBleGFtcGxlcy5sZW5ndGggKyAiLiIpOworICAgICAgICBsb29w
KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9vcCgpIHsKKyAgICAgICAgaWYgKGV4YW1wbGVz
Lmxlbmd0aCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRE9NLmdl
dE91dGVySFRNTCIsIHsibm9kZUlkIjogZXhhbXBsZXNbZXhhbXBsZXMubGVuZ3RoLTFdfSwgb25H
b3RPdXRlckhUTUwpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgZmluaXNoVGVzdCgp
OworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gb25Hb3RPdXRlckhUTUwocmVzcG9u
c2UpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKHJlc3BvbnNlKTsKKyAg
ICAgICAgdmFyIG91dGVySFRNTCA9IHJlc3BvbnNlLnJlc3VsdC5vdXRlckhUTUw7CisgICAgICAg
IG91dGVySFRNTCA9IG91dGVySFRNTC5yZXBsYWNlKC8gY2xhc3M9ImV4Ii9nLCAiIik7IC8vIHJl
bW92ZSBhbnkgZHVwbGljYXRlZCwgdW5uZWNlc3NhcnkgY2xhc3MgYXR0cmlidXRlcworICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiXG4iICsgb3V0ZXJIVE1MKTsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5zZW5kQ29tbWFuZCgiRE9NLmdldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZSIs
IHsibm9kZUlkIjogZXhhbXBsZXNbZXhhbXBsZXMubGVuZ3RoLTFdfSwgb25Hb3RBY2Nlc3NpYmls
aXR5UHJvcGVydGllcyk7CisgICAgfQorCisgICAgZnVuY3Rpb24gb25Hb3RBY2Nlc3NpYmlsaXR5
UHJvcGVydGllcyhyZXNwb25zZSkgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJy
b3IocmVzcG9uc2UpOworICAgICAgICBsb2dBY2Nlc3NpYmlsaXR5UHJvcGVydGllcyhyZXNwb25z
ZS5yZXN1bHQucHJvcGVydGllcyk7CisgICAgICAgIGV4YW1wbGVzLnBvcCgpOworICAgICAgICBs
b29wKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9nQWNjZXNzaWJpbGl0eVByb3BlcnRpZXMo
cHJvcGVydGllcykgeworICAgICAgICBmb3IgKHZhciBrZXkgaW4gcHJvcGVydGllcykgeworICAg
ICAgICAgICAgdmFyIHZhbHVlID0gcHJvcGVydGllc1trZXldOworICAgICAgICAgICAgc3dpdGNo
IChrZXkpeworICAgICAgICAgICAgY2FzZSAiYnVzeSI6CisgICAgICAgICAgICBjYXNlICJleGlz
dHMiOgorICAgICAgICAgICAgY2FzZSAibGl2ZVJlZ2lvbkF0b21pYyI6CisgICAgICAgICAgICBj
YXNlICJsaXZlUmVnaW9uUmVsZXZhbnQiOgorICAgICAgICAgICAgY2FzZSAibGl2ZVJlZ2lvblN0
YXR1cyI6CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiAgICAiICsga2V5ICsg
IjogIiArIHZhbHVlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBJbnNwZWN0b3JU
ZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwgeyJleHByZXNzaW9uIjogImNsZWFu
dXAoKSJ9LCBmdW5jdGlvbigpeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRl
c3QoKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiRE9NLmdldERvY3VtZW50Iiwge30sIG9uR290RG9jdW1lbnQpOworCit9Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2dldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9y
Tm9kZV9tb3VzZUV2ZW50Tm9kZUlkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kb20vZ2V0QWNjZXNzaWJpbGl0eVByb3BlcnRpZXNGb3JOb2RlX21vdXNlRXZlbnROb2RlSWQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlMTU4ZWY4ZjM1MzBiMzI1NzU2MTE1MjM1ZjgzOGFm
ZjQ0NjIyYmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2dl
dEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZV9tb3VzZUV2ZW50Tm9kZUlkLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDY3IEBACitDaGVja2luZyBXZWIgSW5zcGVjdG9yIHByb3RvY29sIChz
cGVjaWZpY2FsbHkgbW91c2VFdmVudE5vZGVJZCkgZm9yIHRoZSBBY2Nlc3NpYmlsaXR5IE5vZGUg
SW5zcGVjdG9yLgorCitUb3RhbCBlbGVtZW50cyB0byBiZSB0ZXN0ZWQ6IDIxLgorCis8ZGl2PkRP
TTIgbW91c2V1cCBvbiBwYXJlbnQgZGl2LjwvZGl2PgorICAgIG1vdXNlRXZlbnROb2RlSWQ6IGFu
Y2VzdG9yIGVsZW1lbnQKKworPGRpdj5ET00yIG1vdXNlZG93biBvbiBwYXJlbnQgZGl2LjwvZGl2
PgorICAgIG1vdXNlRXZlbnROb2RlSWQ6IGFuY2VzdG9yIGVsZW1lbnQKKworPGRpdj5ET00yIGNs
aWNrIG9uIHBhcmVudCBkaXYuPC9kaXY+CisgICAgbW91c2VFdmVudE5vZGVJZDogYW5jZXN0b3Ig
ZWxlbWVudAorCis8ZGl2IGlkPSJkb20ybW91c2V1cCI+bW91c2V1cDwvZGl2PgorICAgIG1vdXNl
RXZlbnROb2RlSWQ6IHNlbGYKKworPGRpdiBpZD0iZG9tMm1vdXNlZG93biI+bW91c2Vkb3duPC9k
aXY+CisgICAgbW91c2VFdmVudE5vZGVJZDogc2VsZgorCis8ZGl2IGlkPSJkb20yY2xpY2siPmNs
aWNrPC9kaXY+CisgICAgbW91c2VFdmVudE5vZGVJZDogc2VsZgorCis8ZGl2PkRPTTEgbW91c2V1
cCBvbiBwYXJlbnQgZGl2PC9kaXY+CisgICAgbW91c2VFdmVudE5vZGVJZDogYW5jZXN0b3IgZWxl
bWVudAorCis8ZGl2PkRPTTEgbW91c2Vkb3duIG9uIHBhcmVudCBkaXYuPC9kaXY+CisgICAgbW91
c2VFdmVudE5vZGVJZDogYW5jZXN0b3IgZWxlbWVudAorCis8ZGl2PkRPTTEgY2xpY2sgb24gcGFy
ZW50IGRpdi48L2Rpdj4KKyAgICBtb3VzZUV2ZW50Tm9kZUlkOiBhbmNlc3RvciBlbGVtZW50CisK
KzxkaXYgaWQ9ImRvbTFtb3VzZXVwIj5tb3VzZXVwPC9kaXY+CisgICAgbW91c2VFdmVudE5vZGVJ
ZDogc2VsZgorCis8ZGl2IGlkPSJkb20xbW91c2Vkb3duIj5tb3VzZWRvd248L2Rpdj4KKyAgICBt
b3VzZUV2ZW50Tm9kZUlkOiBzZWxmCisKKzxkaXYgaWQ9ImRvbTFjbGljayI+Y2xpY2s8L2Rpdj4K
KyAgICBtb3VzZUV2ZW50Tm9kZUlkOiBzZWxmCisKKzxzcGFuIHJvbGU9ImltZyI+RE9NMSBpbmxp
bmUgY2xpY2sgb24gcGFyZW50IHNwYW4uPC9zcGFuPgorICAgIG1vdXNlRXZlbnROb2RlSWQ6IGFu
Y2VzdG9yIGVsZW1lbnQKKworPGRpdj5ET00xIGlubGluZSBjbGljayBvbiBwYXJlbnQgZGl2IHdp
dGggdGFiaW5kZXg9IjAiLjwvZGl2PgorICAgIG1vdXNlRXZlbnROb2RlSWQ6IGFuY2VzdG9yIGVs
ZW1lbnQKKworPGRpdj5ET00xIGlubGluZSBjbGljayBvbiBwYXJlbnQgZGl2IHdpdGggcm9sZT0i
YnV0dG9uIi48L2Rpdj4KKyAgICBtb3VzZUV2ZW50Tm9kZUlkOiBhbmNlc3RvciBlbGVtZW50CisK
KzxkaXY+RE9NMSBpbmxpbmUgY2xpY2sgb24gcGFyZW50IGRpdi48L2Rpdj4KKyAgICBtb3VzZUV2
ZW50Tm9kZUlkOiBhbmNlc3RvciBlbGVtZW50CisKKzxzcGFuIG9uY2xpY2s9InZvaWQoMCk7Ij5j
bGljazwvc3Bhbj4KKyAgICBtb3VzZUV2ZW50Tm9kZUlkOiBzZWxmCisKKzxkaXYgdGFiaW5kZXg9
IjAiIG9uY2xpY2s9InZvaWQoMCk7Ij5jbGljazwvZGl2PgorICAgIG1vdXNlRXZlbnROb2RlSWQ6
IHNlbGYKKworPGRpdiByb2xlPSJidXR0b24iIG9uY2xpY2s9InZvaWQoMCk7Ij5jbGljazwvZGl2
PgorICAgIG1vdXNlRXZlbnROb2RlSWQ6IHNlbGYKKworPGRpdiBvbmNsaWNrPSJ2b2lkKDApOyI+
Y2xpY2s8L2Rpdj4KKyAgICBtb3VzZUV2ZW50Tm9kZUlkOiBzZWxmCisKKzxkaXY+Q2xpY2sgaGFu
ZGxlciBvbiBib2R5IGRlbGVnYXRlLjwvZGl2PgorICAgIG1vdXNlRXZlbnROb2RlSWQ6IGJvZHkg
ZWxlbWVudAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2dldEFjY2Vz
c2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZV9tb3VzZUV2ZW50Tm9kZUlkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZG9tL2dldEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZV9tb3Vz
ZUV2ZW50Tm9kZUlkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGJiNWFiODYyNDE3YzJhYmZhMTQxNGFhNzY3
YzEzY2E5YmNlZTc1MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
b20vZ2V0QWNjZXNzaWJpbGl0eVByb3BlcnRpZXNGb3JOb2RlX21vdXNlRXZlbnROb2RlSWQuaHRt
bApAQCAtMCwwICsxLDE0OSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90
b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9uTG9hZD0icnVuVGVzdCgp
IiBvbmNsaWNrPSJ2b2lkKDApOyI+CisKKzxwPkNoZWNraW5nIFdlYiBJbnNwZWN0b3IgcHJvdG9j
b2wgKHNwZWNpZmljYWxseSBtb3VzZUV2ZW50Tm9kZUlkKSBmb3IgdGhlIEFjY2Vzc2liaWxpdHkg
Tm9kZSBJbnNwZWN0b3IuPC9wPgorCis8ZGl2IGlkPSJleGFtcGxlcyI+CisKKyAgICA8ZGl2IGNs
YXNzPSJleCI+Q2xpY2sgaGFuZGxlciBvbiBib2R5IGRlbGVnYXRlLjwvZGl2PgorCisgICAgPCEt
LSBJbmxpbmUgZXZlbnQgaGFuZGxlcnMgZm9yIG1vdXNlRXZlbnROb2RlSWQgdGVzdC4gLS0+Cisg
ICAgPGRpdiBjbGFzcz0iZXgiIG9uY2xpY2s9InZvaWQoMCk7Ij5jbGljazwvZGl2PgorICAgIDxk
aXYgY2xhc3M9ImV4IiByb2xlPSJidXR0b24iIG9uY2xpY2s9InZvaWQoMCk7Ij5jbGljazwvZGl2
PgorICAgIDxkaXYgY2xhc3M9ImV4IiB0YWJpbmRleD0iMCIgb25jbGljaz0idm9pZCgwKTsiPmNs
aWNrPC9kaXY+CisgICAgPHNwYW4gY2xhc3M9ImV4IiBvbmNsaWNrPSJ2b2lkKDApOyI+Y2xpY2s8
L3NwYW4+CisgICAgPGRpdiBvbmNsaWNrPSJ2b2lkKDApOyI+PGRpdiBjbGFzcz0iZXgiPkRPTTEg
aW5saW5lIGNsaWNrIG9uIHBhcmVudCBkaXYuPC9kaXY+PC9kaXY+CisgICAgPGRpdiByb2xlPSJi
dXR0b24iIG9uY2xpY2s9InZvaWQoMCk7Ij48ZGl2IGNsYXNzPSJleCI+RE9NMSBpbmxpbmUgY2xp
Y2sgb24gcGFyZW50IGRpdiB3aXRoIHJvbGU9ImJ1dHRvbiIuPC9kaXY+PC9kaXY+CisgICAgPGRp
diB0YWJpbmRleD0iMCIgb25jbGljaz0idm9pZCgwKTsiPjxkaXYgY2xhc3M9ImV4Ij5ET00xIGlu
bGluZSBjbGljayBvbiBwYXJlbnQgZGl2IHdpdGggdGFiaW5kZXg9IjAiLjwvZGl2PjwvZGl2Pgor
ICAgIDxzcGFuIG9uY2xpY2s9InZvaWQoMCk7Ij48c3BhbiByb2xlPSJpbWciIGNsYXNzPSJleCI+
RE9NMSBpbmxpbmUgY2xpY2sgb24gcGFyZW50IHNwYW4uPC9zcGFuPjwvc3Bhbj4KKworICAgIDwh
LS0gRE9NIExldmVsIDEgZXZlbnRzIGFzc2lnbmVkIGJlbG93IGZvciBtb3VzZUV2ZW50Tm9kZUlk
IHRlc3QuIC0tPgorICAgIDxkaXYgY2xhc3M9ImV4IiBpZD0iZG9tMWNsaWNrIj5jbGljazwvZGl2
PgorICAgIDxkaXYgY2xhc3M9ImV4IiBpZD0iZG9tMW1vdXNlZG93biI+bW91c2Vkb3duPC9kaXY+
CisgICAgPGRpdiBjbGFzcz0iZXgiIGlkPSJkb20xbW91c2V1cCI+bW91c2V1cDwvZGl2PgorICAg
IDxkaXYgaWQ9ImRvbTFjbGlja3BhcmVudCI+PGRpdiBjbGFzcz0iZXgiPkRPTTEgY2xpY2sgb24g
cGFyZW50IGRpdi48L2Rpdj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJkb20xbW91c2Vkb3ducGFyZW50
Ij48ZGl2IGNsYXNzPSJleCI+RE9NMSBtb3VzZWRvd24gb24gcGFyZW50IGRpdi48L2Rpdj48L2Rp
dj4KKyAgICA8ZGl2IGlkPSJkb20xbW91c2V1cHBhcmVudCI+PGRpdiBjbGFzcz0iZXgiPkRPTTEg
bW91c2V1cCBvbiBwYXJlbnQgZGl2PC9kaXY+PC9kaXY+CisKKyAgICA8IS0tIERPTSBMZXZlbCAy
IGV2ZW50cyBhc3NpZ25lZCBiZWxvdyBmb3IgbW91c2VFdmVudE5vZGVJZCB0ZXN0LiAtLT4KKyAg
ICA8ZGl2IGNsYXNzPSJleCIgaWQ9ImRvbTJjbGljayI+Y2xpY2s8L2Rpdj4KKyAgICA8ZGl2IGNs
YXNzPSJleCIgaWQ9ImRvbTJtb3VzZWRvd24iPm1vdXNlZG93bjwvZGl2PgorICAgIDxkaXYgY2xh
c3M9ImV4IiBpZD0iZG9tMm1vdXNldXAiPm1vdXNldXA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJkb20y
Y2xpY2twYXJlbnQiPjxkaXYgY2xhc3M9ImV4Ij5ET00yIGNsaWNrIG9uIHBhcmVudCBkaXYuPC9k
aXY+PC9kaXY+CisgICAgPGRpdiBpZD0iZG9tMm1vdXNlZG93bnBhcmVudCI+PGRpdiBjbGFzcz0i
ZXgiPkRPTTIgbW91c2Vkb3duIG9uIHBhcmVudCBkaXYuPC9kaXY+PC9kaXY+CisgICAgPGRpdiBp
ZD0iZG9tMm1vdXNldXBwYXJlbnQiPjxkaXYgY2xhc3M9ImV4Ij5ET00yIG1vdXNldXAgb24gcGFy
ZW50IGRpdi48L2Rpdj48L2Rpdj4KKworPC9kaXY+CisKKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij4KKworZnVuY3Rpb24gJChpZCkgeworICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChpZCk7Cit9CisKK2Z1bmN0aW9uIHZvaWRIYW5kbGVyKCkgeworICAgIHZvaWQoMCk7
Cit9CisKKy8vIERPTSBMZXZlbCAxIGV2ZW50cy4KKyQoImRvbTFjbGljayIpLm9uY2xpY2sgPSB2
b2lkSGFuZGxlcjsKKyQoImRvbTFtb3VzZWRvd24iKS5vbm1vdXNlZG93biA9IHZvaWRIYW5kbGVy
OworJCgiZG9tMW1vdXNldXAiKS5vbm1vdXNldXAgPSB2b2lkSGFuZGxlcjsKKyQoImRvbTFjbGlj
a3BhcmVudCIpLm9uY2xpY2sgPSB2b2lkSGFuZGxlcjsKKyQoImRvbTFtb3VzZWRvd25wYXJlbnQi
KS5vbm1vdXNlZG93biA9IHZvaWRIYW5kbGVyOworJCgiZG9tMW1vdXNldXBwYXJlbnQiKS5vbm1v
dXNldXAgPSB2b2lkSGFuZGxlcjsKKworLy8gRE9NIExldmVsIDIgZXZlbnRzLgorJCgiZG9tMmNs
aWNrIikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB2b2lkSGFuZGxlcik7CiskKCJkb20ybW91
c2Vkb3duIikuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdm9pZEhhbmRsZXIpOworJCgi
ZG9tMm1vdXNldXAiKS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIiwgdm9pZEhhbmRsZXIpOwor
JCgiZG9tMmNsaWNrcGFyZW50IikuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB2b2lkSGFuZGxl
cik7CiskKCJkb20ybW91c2Vkb3ducGFyZW50IikuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3du
Iiwgdm9pZEhhbmRsZXIpOworJCgiZG9tMm1vdXNldXBwYXJlbnQiKS5hZGRFdmVudExpc3RlbmVy
KCJtb3VzZXVwIiwgdm9pZEhhbmRsZXIpOworCitmdW5jdGlvbiBjbGVhbnVwKCkgeworICAgIC8v
IEhpZGUgdGhlIHRlc3QgZWxlbWVudCBjb250YWluZXIgdG8gYXZvaWQgaXJyZWxldmFudCBvdXRw
dXQgZGlmZnMgb24gc3Vic2VxdWVudCB1cGRhdGVzLgorICAgICQoImV4YW1wbGVzIikuc3R5bGUu
ZGlzcGxheSA9ICJub25lIjsKK30KKworZnVuY3Rpb24gdGVzdCgpIHsKKworICAgIHZhciBleGFt
cGxlcyA9IFtdOworICAgIHZhciBkb2N1bWVudE5vZGVJZCA9IG51bGw7CisgICAgdmFyIGJvZHlO
b2RlSWQgPSBudWxsOworCisgICAgZnVuY3Rpb24gb25Hb3REb2N1bWVudChyZXNwb25zZSkgewor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVzcG9uc2UpOworICAgICAgICBk
b2N1bWVudE5vZGVJZCA9IHJlc3BvbnNlLnJlc3VsdC5yb290Lm5vZGVJZDsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRE9NLnF1ZXJ5U2VsZWN0b3IiLCB7Im5vZGVJZCI6IGRv
Y3VtZW50Tm9kZUlkLCAic2VsZWN0b3IiOiAiYm9keSJ9LCBvbkdvdEJvZHkpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIG9uR290Qm9keShyZXNwb25zZSkgeworICAgICAgICBJbnNwZWN0b3JUZXN0
LmNoZWNrRm9yRXJyb3IocmVzcG9uc2UpOworICAgICAgICBib2R5Tm9kZUlkID0gcmVzcG9uc2Uu
cmVzdWx0Lm5vZGVJZDsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRE9NLmdl
dEFjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZSIsIHsibm9kZUlkIjogYm9keU5vZGVJZH0s
IG9uR290QWNjZXNzaWJpbGl0eVByb3BlcnRpZXNGb3JCb2R5Tm9kZSk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gb25Hb3RBY2Nlc3NpYmlsaXR5UHJvcGVydGllc0ZvckJvZHlOb2RlKHJlc3BvbnNl
KSB7CisgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZSk7CisgICAg
ICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRPTS5xdWVyeVNlbGVjdG9yQWxsIiwgeyJu
b2RlSWQiOiBkb2N1bWVudE5vZGVJZCwgInNlbGVjdG9yIjogIi5leCJ9LCBvbkdvdFF1ZXJ5U2Vs
ZWN0b3JBbGwpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9uR290UXVlcnlTZWxlY3RvckFsbChy
ZXNwb25zZSkgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmNoZWNrRm9yRXJyb3IocmVzcG9uc2Up
OworICAgICAgICBleGFtcGxlcyA9IHJlc3BvbnNlLnJlc3VsdC5ub2RlSWRzOworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygiVG90YWwgZWxlbWVudHMgdG8gYmUgdGVzdGVkOiAiICsgZXhhbXBs
ZXMubGVuZ3RoICsgIi4iKTsKKyAgICAgICAgbG9vcCgpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IGxvb3AoKSB7CisgICAgICAgIGlmIChleGFtcGxlcy5sZW5ndGgpIHsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRPTS5nZXRPdXRlckhUTUwiLCB7Im5vZGVJZCI6IGV4
YW1wbGVzW2V4YW1wbGVzLmxlbmd0aC0xXX0sIG9uR290T3V0ZXJIVE1MKTsKKyAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IGZ1bmN0aW9uIG9uR290T3V0ZXJIVE1MKHJlc3BvbnNlKSB7CisgICAgICAgIEluc3BlY3RvclRl
c3QuY2hlY2tGb3JFcnJvcihyZXNwb25zZSk7CisgICAgICAgIHZhciBvdXRlckhUTUwgPSByZXNw
b25zZS5yZXN1bHQub3V0ZXJIVE1MOworICAgICAgICBvdXRlckhUTUwgPSBvdXRlckhUTUwucmVw
bGFjZSgvIGNsYXNzPSJleCIvZywgIiIpOyAvLyByZW1vdmUgYW55IGR1cGxpY2F0ZWQsIHVubmVj
ZXNzYXJ5IGNsYXNzIGF0dHJpYnV0ZXMKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlxuIiAr
IG91dGVySFRNTCk7CisgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRPTS5nZXRB
Y2Nlc3NpYmlsaXR5UHJvcGVydGllc0Zvck5vZGUiLCB7Im5vZGVJZCI6IGV4YW1wbGVzW2V4YW1w
bGVzLmxlbmd0aC0xXX0sIG9uR290QWNjZXNzaWJpbGl0eVByb3BlcnRpZXMpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIG9uR290QWNjZXNzaWJpbGl0eVByb3BlcnRpZXMocmVzcG9uc2UpIHsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKHJlc3BvbnNlKTsKKyAgICAgICAgbG9n
QWNjZXNzaWJpbGl0eVByb3BlcnRpZXMocmVzcG9uc2UucmVzdWx0LnByb3BlcnRpZXMpOworICAg
ICAgICBleGFtcGxlcy5wb3AoKTsKKyAgICAgICAgbG9vcCgpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIGxvZ0FjY2Vzc2liaWxpdHlQcm9wZXJ0aWVzKHByb3BlcnRpZXMpIHsKKyAgICAgICAgdmFy
IG1vdXNlRXZlbnROb2RlSWQgPSBwcm9wZXJ0aWVzLm1vdXNlRXZlbnROb2RlSWQ7CisgICAgICAg
IGlmICh0eXBlb2YgbW91c2VFdmVudE5vZGVJZCA9PT0gIm51bWJlciIpCisgICAgICAgICAgICB2
YXIgbXNnID0gIiAgICBtb3VzZUV2ZW50Tm9kZUlkOiAiOworICAgICAgICAgICAgaWYgKG1vdXNl
RXZlbnROb2RlSWQgPT09IGJvZHlOb2RlSWQpCisgICAgICAgICAgICAgICAgbXNnICs9ICJib2R5
IGVsZW1lbnQiOworICAgICAgICAgICAgZWxzZSBpZiAobW91c2VFdmVudE5vZGVJZCA9PT0gcHJv
cGVydGllcy5ub2RlSWQpCisgICAgICAgICAgICAgICAgbXNnICs9ICJzZWxmIjsKKyAgICAgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgICAgICBtc2cgKz0gImFuY2VzdG9yIGVsZW1lbnQiOworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cobXNnKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBm
aW5pc2hUZXN0KCkgeworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1l
LmV2YWx1YXRlIiwgeyJleHByZXNzaW9uIjogImNsZWFudXAoKSJ9LCBmdW5jdGlvbigpeworICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgfSk7CisgICAg
fQorCisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiRE9NLmdldERvY3VtZW50Iiwge30s
IG9uR290RG9jdW1lbnQpOworCit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZG9tL2hpZ2hsaWdodC1mbG93LXdpdGgtbm8tcmVnaW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kb20vaGlnaGxpZ2h0LWZsb3ctd2l0aC1uby1yZWdpb24tZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjkwY2M2ZGYyNjMyMTEzNDg5Yjg0OTU2NWUzNjBiZjlmYzgwYmM2ODgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL2hpZ2hsaWdodC1m
bG93LXdpdGgtbm8tcmVnaW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitUZXN0aW5nIHRo
YXQgdGhlIGJhY2tlbmQgaXMgbm90IGNyYXNoaW5nIHdoZW4gaGlnaGxpZ2h0aW5nIGEgbm9kZSB0
aGF0IGhhcyBubyBhc3NvY2lhdGVkIHJlZ2lvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kb20vaGlnaGxpZ2h0LWZsb3ctd2l0aC1uby1yZWdpb24uaHRtbCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kb20vaGlnaGxpZ2h0LWZsb3ctd2l0aC1uby1yZWdpb24uaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iMzA4ZjQzYWRjMGI2M2E4OTBjMDFjMWUyNWI4YjRkODFlYzA2YmU1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9oaWdobGlnaHQtZmxvdy13aXRo
LW5vLXJlZ2lvbi5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9y
ZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisjZmxvdyB7Cisg
ICAgLXdlYmtpdC1mbG93LWludG86IGZsb3c7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Z1bmN0
aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRPTS5nZXREb2N1
bWVudCIsIHt9LCBvbkdvdERvY3VtZW50KTsKKworICAgIGZ1bmN0aW9uIG9uR290RG9jdW1lbnQo
bXNnKSB7CisgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihtc2cpOworICAgICAg
ICB2YXIgbm9kZSA9IG1zZy5yZXN1bHQucm9vdDsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5k
Q29tbWFuZCgiRE9NLnF1ZXJ5U2VsZWN0b3IiLCB7ICJub2RlSWQiOiBub2RlLm5vZGVJZCwgInNl
bGVjdG9yIjogIiNpbnNwZWN0ZWRFbGVtZW50IiB9LCBvblF1ZXJ5U2VsZWN0b3IpOworICAgIH0K
KworICAgIGZ1bmN0aW9uIG9uUXVlcnlTZWxlY3Rvcihtc2cpIHsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5jaGVja0ZvckVycm9yKG1zZyk7CisgICAgICAgIHZhciBub2RlID0gbXNnLnJlc3VsdDsK
KyAgICAgICAgdmFyIGhpZ2hsaWdodENvbmZpZyA9IHsKKyAgICAgICAgICAgIHNob3dJbmZvOiB0
cnVlLAorICAgICAgICAgICAgY29udGVudENvbG9yOiB7cjogMjU1LCBnOiAyNTUsIGI6IDI1NX0s
CisgICAgICAgICAgICBwYWRkaW5nQ29sb3I6IHtyOiAyNTUsIGc6IDI1NSwgYjogMjU1fSwKKyAg
ICAgICAgICAgIGJvcmRlckNvbG9yOiB7cjogMjU1LCBnOiAyNTUsIGI6IDI1NX0sCisgICAgICAg
ICAgICBtYXJnaW5Db2xvcjoge3I6IDI1NSwgZzogMjU1LCBiOiAyNTV9LAorICAgICAgICB9Owor
ICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJET00uaGlnaGxpZ2h0Tm9kZSIsIHsg
ImhpZ2hsaWdodENvbmZpZyI6IGhpZ2hsaWdodENvbmZpZywgIm5vZGVJZCI6IG5vZGUubm9kZUlk
IH0sIG9uSGlnaGxpZ2h0Q29tcGxldGUpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9uSGlnaGxp
Z2h0Q29tcGxldGUobXNnKSB7CisgICAgICAgIEluc3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvciht
c2cpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorCis8ZGl2IGlkPSJm
bG93Ij4KKyAgICA8ZGl2IGlkPSJpbnNwZWN0ZWRFbGVtZW50Ij48L2Rpdj4KKzwvZGl2PgorCis8
cD5UZXN0aW5nIHRoYXQgdGhlIGJhY2tlbmQgaXMgbm90IGNyYXNoaW5nIHdoZW4gaGlnaGxpZ2h0
aW5nIGEgbm9kZSB0aGF0IGhhcyBubyBhc3NvY2lhdGVkIHJlZ2lvbi48L3A+CisKKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcmVtb3ZlLW11
bHRpcGxlLW5vZGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcmVt
b3ZlLW11bHRpcGxlLW5vZGVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTkxMTg0ZmYyNWFk
NTNmMTI2NzI1YTViNDY4YjQ0OGQ0NDU4NzM1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RvbS9yZW1vdmUtbXVsdGlwbGUtbm9kZXMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTIgQEAKK1Rlc3RpbmcgdGhhdCBET00uY2hpbGROb2RlUmVtb3ZlZCBpcyBjb3JyZWN0
bHkgdHJpZ2dlcmVkIHdoZW4gYWxsIHRoZSBwYXJlbnQgY2hpbGRyZW4gb2YgYSBub2RlIGFyZSBy
ZW1vdmVkIGF0IG9uY2UuCisKK1BhcmVudCBjb250YWluZXIgaXMgbm93IGVtcHR5CitUYXJnZXQg
ZWxlbWVudCBzaG91bGQgaGF2ZSBiZWVuIG1vdmVkIGFmdGVyIHRoaXMgbGluZToKK1RhcmdldCBl
bGVtZW50CisKK1JlbW92aW5nIG5vZGUgZGl2I3RhcmdldF9lbGVtZW50CitJbnNlcnRpbmcgbm9k
ZSBkaXYjdGFyZ2V0X2VsZW1lbnQgaW50byBwI2ZpbmFsX2NvbnRhaW5lcgorUmVtb3Zpbmcgbm9k
ZSBkaXYjYmVmb3JlCitSZW1vdmluZyBub2RlIGRpdiNhZnRlcgorSW5zZXJ0aW5nIG5vZGUgPHRl
eHQgbm9kZSAiUGFyZW50IGNvbnRhaW5lciBpcyBub3cgZW1wdHkiPiBpbnRvIGRpdiNwYXJlbnRf
Y29udGFpbmVyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcmVtb3Zl
LW11bHRpcGxlLW5vZGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZG9tL3JlbW92ZS1t
dWx0aXBsZS1ub2Rlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzOGZmY2MwNWRhMjc4YTA2ZWNmNzIyYmEx
M2ZhZWU2Yjc0NzI0NTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZG9tL3JlbW92ZS1tdWx0aXBsZS1ub2Rlcy5odG1sCkBAIC0wLDAgKzEsMTE0IEBACis8aHRtbD4K
KzxoZWFkPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90
ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK2Z1bmN0aW9uIG1vdmVOb2RlKCkKK3sKKyAgICB2YXIgdGFyZ2V0RWxlbWVudCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRfZWxlbWVudCIpOworICAgIHRhcmdldEVsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NTm9kZVJlbW92ZWQiLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgdGFyZ2V0RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Ob2RlUmVtb3ZlZCIsIGFy
Z3VtZW50cy5jYWxsZWUpOworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmluYWxf
Y29udGFpbmVyIikuYXBwZW5kQ2hpbGQodGhpcyk7CisgICAgfSk7CisgICAgLy8gUmVtb3ZlIGFs
bCB0aGUgY2hpbGRyZW4gaW5zaWRlIHBhcmVudCBjb250YWluZXIsIGluY2x1ZGluZyAiI3Rhcmdl
dF9lbGVtZW50Ii4KKyAgICB2YXIgcGFyZW50Q29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInBhcmVudF9jb250YWluZXIiKTsKKyAgICBwYXJlbnRDb250YWluZXIudGV4dENvbnRl
bnQgPSAiUGFyZW50IGNvbnRhaW5lciBpcyBub3cgZW1wdHkiOworfQorCitmdW5jdGlvbiB0ZXN0
KCkKK3sKKyAgICB2YXIgbm9kZXNCeUlkID0ge307CisKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50
SGFuZGxlclsiRE9NLnNldENoaWxkTm9kZXMiXSA9IG9uU2V0Q2hpbGROb2RlczsKKyAgICBJbnNw
ZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRE9NLmNoaWxkTm9kZVJlbW92ZWQiXSA9IG9uQ2hpbGRO
b2RlUmVtb3ZlZDsKKyAgICBJbnNwZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiRE9NLmNoaWxkTm9k
ZUluc2VydGVkIl0gPSBvbkNoaWxkTm9kZUluc2VydGVkOworCisgICAgZnVuY3Rpb24gY3JlYXRl
Tm9kZUF0dHJpYnV0ZXNNYXAoYXR0cmlidXRlcykKKyAgICB7CisgICAgICAgIHZhciBhdHRyaWJ1
dGVzTWFwID0ge307CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cmlidXRlcy5sZW5n
dGg7IGkgKz0gMikKKyAgICAgICAgICAgIGF0dHJpYnV0ZXNNYXBbYXR0cmlidXRlc1tpXV0gPSBh
dHRyaWJ1dGVzW2kgKyAxXTsKKyAgICAgICAgcmV0dXJuIGF0dHJpYnV0ZXNNYXA7CisgICAgfQor
CisgICAgZnVuY3Rpb24gY29sbGVjdE5vZGUobm9kZSkKKyAgICB7CisgICAgICAgIGlmIChub2Rl
Lm5vZGVUeXBlID09PSAxKQorICAgICAgICAgICAgbm9kZS5hdHRyaWJ1dGVzID0gY3JlYXRlTm9k
ZUF0dHJpYnV0ZXNNYXAobm9kZS5hdHRyaWJ1dGVzKTsKKyAgICAgICAgaWYgKG5vZGUuY2hpbGRy
ZW4pCisgICAgICAgICAgICBub2RlLmNoaWxkcmVuLmZvckVhY2goY29sbGVjdE5vZGUpOworICAg
ICAgICBub2Rlc0J5SWRbbm9kZS5ub2RlSWRdID0gbm9kZTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBub2RlVG9TdHJpbmcobm9kZSkKKyAgICB7CisgICAgICAgIHN3aXRjaCAobm9kZS5ub2RlVHlw
ZSkgeworICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICByZXR1cm4gbm9kZS5sb2NhbE5hbWUg
KyAiIyIgKyBub2RlLmF0dHJpYnV0ZXMuaWQ7CisgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAg
IHJldHVybiAiPHRleHQgbm9kZSAiICsgSlNPTi5zdHJpbmdpZnkobm9kZS5ub2RlVmFsdWUpICsg
Ij4iOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuICI8bm9kZVR5cGUgIiAr
IG5vZGUubm9kZVR5cGUgKyAiPiI7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBn
ZXROb2RlSWRlbnRpZmllcihub2RlSWQpCisgICAgeworICAgICAgICBpZiAoIW5vZGVJZCkKKyAg
ICAgICAgICAgIHJldHVybiAiPGludmFsaWQgbm9kZSBpZD4iOworICAgICAgICB2YXIgbm9kZSA9
IG5vZGVzQnlJZFtub2RlSWRdOworICAgICAgICByZXR1cm4gbm9kZSA/IG5vZGVUb1N0cmluZyhu
b2RlKSA6ICI8dW5rbm93biBub2RlPiI7CisgICAgfQorCisgICAgZnVuY3Rpb24gb25TZXRDaGls
ZE5vZGVzKHJlc3BvbnNlKQorICAgIHsKKyAgICAgICAgcmVzcG9uc2UucGFyYW1zLm5vZGVzLmZv
ckVhY2goY29sbGVjdE5vZGUpOworICAgIH0KKworICAgIGZ1bmN0aW9uIG9uQ2hpbGROb2RlUmVt
b3ZlZChyZXNwb25zZSkKKyAgICB7CisgICAgICAgIHZhciBub2RlSWQgPSByZXNwb25zZS5wYXJh
bXMubm9kZUlkOworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUmVtb3Zpbmcgbm9kZSAiICsg
Z2V0Tm9kZUlkZW50aWZpZXIobm9kZUlkKSk7CisgICAgICAgIGRlbGV0ZSBub2Rlc0J5SWRbbm9k
ZUlkXTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvbkNoaWxkTm9kZUluc2VydGVkKHJlc3BvbnNl
KQorICAgIHsKKyAgICAgICAgY29sbGVjdE5vZGUocmVzcG9uc2UucGFyYW1zLm5vZGUpOworICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiSW5zZXJ0aW5nIG5vZGUgIiArIGdldE5vZGVJZGVudGlm
aWVyKHJlc3BvbnNlLnBhcmFtcy5ub2RlLm5vZGVJZCkgKyAiIGludG8gIiArIGdldE5vZGVJZGVu
dGlmaWVyKHJlc3BvbnNlLnBhcmFtcy5wYXJlbnROb2RlSWQpKTsKKyAgICB9CisKKyAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJET00uZ2V0RG9jdW1lbnQiLCB7fSwgb25Hb3REb2N1bWVu
dCk7CisKKyAgICBmdW5jdGlvbiBvbkdvdERvY3VtZW50KG1zZykKKyAgICB7CisgICAgICAgIElu
c3BlY3RvclRlc3QuY2hlY2tGb3JFcnJvcihtc2cpOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNl
bmRDb21tYW5kKCJET00ucXVlcnlTZWxlY3RvckFsbCIsIHsibm9kZUlkIjogbXNnLnJlc3VsdC5y
b290Lm5vZGVJZCwgInNlbGVjdG9yIjogIiNwYXJlbnRfY29udGFpbmVyLCNmaW5hbF9jb250YWlu
ZXIifSwgb25RdWVyeVNlbGVjdG9yQWxsKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBvblF1ZXJ5
U2VsZWN0b3JBbGwocmVzcG9uc2UpCisgICAgeworICAgICAgICAvLyBNYWtlIHN1cmUgd2UgcmVj
ZWl2ZSB0aGUgY2hpbGRyZW4gb2YgdGhlICIjZmluYWxfY29udGFpbmVyIiBhcyB0aGV5IGFyZSBh
ZGRlZC4KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZXNwb25zZS5yZXN1bHQubm9kZUlk
cy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIkRP
TS5yZXF1ZXN0Q2hpbGROb2RlcyIsIHtub2RlSWQ6IHJlc3BvbnNlLnJlc3VsdC5ub2RlSWRzW2ld
fSk7CisgICAgICAgIAorICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1l
LmV2YWx1YXRlIiwgeyJleHByZXNzaW9uIjogIm1vdmVOb2RlKCkifSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICB9KTsKKyAg
ICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKwor
PHA+VGVzdGluZyB0aGF0IERPTS5jaGlsZE5vZGVSZW1vdmVkIGlzIGNvcnJlY3RseSB0cmlnZ2Vy
ZWQgd2hlbiBhbGwgdGhlIHBhcmVudCBjaGlsZHJlbiBvZiBhIG5vZGUgYXJlIHJlbW92ZWQgYXQg
b25jZS48L3A+CisKKzxkaXYgaWQ9InBhcmVudF9jb250YWluZXIiPgorICAgIDxkaXYgaWQ9ImJl
Zm9yZSI+RkFJTDogRWxlbWVudCAiI2JlZm9yZSIgc2hvdWxkIGJlIHJlbW92ZWQ8L2Rpdj4KKyAg
ICA8ZGl2IGlkPSJ0YXJnZXRfZWxlbWVudCI+VGFyZ2V0IGVsZW1lbnQ8L2Rpdj4KKyAgICA8ZGl2
IGlkPSJhZnRlciI+RkFJTDogRWxlbWVudCAiI2FmdGVyIiBzaG91bGQgYmUgcmVtb3ZlZDwvZGl2
PgorPC9kaXY+CisKKzxwIGlkPSJmaW5hbF9jb250YWluZXIiPlRhcmdldCBlbGVtZW50IHNob3Vs
ZCBoYXZlIGJlZW4gbW92ZWQgYWZ0ZXIgdGhpcyBsaW5lOjwvcD4KKworPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9yZXF1ZXN0LWNoaWxkLW5v
ZGVzLWRlcHRoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcmVxdWVz
dC1jaGlsZC1ub2Rlcy1kZXB0aC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzk0NDYzMGNjMGE1
YWUwODIzOWJjZjdhMjNmZWM1MjMyNjkwMWQwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kb20vcmVxdWVzdC1jaGlsZC1ub2Rlcy1kZXB0aC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwyNSBAQAorCis9PT0gR2V0IHRoZSBEb2N1bWVudCA9PT0KKworCis9PT0gR2V0
IGltbWVkaWF0ZSBjaGlsZHJlbiBvZiB0aGUgYm9keSA9PT0KKworUEFTUzogRmlyc3QgY2hpbGQg
aXMgYSBkaXYKK1BBU1M6IEZpcnN0IGNoaWxkIGlzIGRpdiNkZXB0aC0xCitQQVNTOiBGaXJzdCBj
aGlsZCBoYXMgb25lIGNoaWxkCitQQVNTOiBGaXJzdCBjaGlsZCBoYXMgbm8gLmNoaWxkcmVuIHBy
b3BlcnR5CisKKz09PSBHZXQgY2hpbGRyZW4gb2YgZGl2I2RlcHRoLTEgdGhyZWUgbGV2ZWxzIGRl
ZXAgPT09CisKK1BBU1M6IGRpdiNkZXB0aC0xIGhhcyBub2RlcyAzIGxldmVscyBkZWVwCisKKz09
PSBHZXQgYWxsIGNoaWxkcmVuIG9mIGJvZHkgPT09CisKK1BBU1M6IGRpdiNkZXB0aC0xIGhhcyBu
b2RlcyA5IGxldmVscyBkZWVwCisKKz09PSBQYXNzIGFuIGludmFsaWQgZGVwdGggPT09CisKK0Jh
Y2tlbmQgZXJyb3I6IFBsZWFzZSBwcm92aWRlIGEgcG9zaXRpdmUgaW50ZWdlciBhcyBhIGRlcHRo
IG9yIC0xIGZvciBlbnRpcmUgc3VidHJlZSAoLTMyMDAwKQorCitQQVNTOiBFeHBlY3RlZCBudW1i
ZXIgb2Ygc2V0Q2hpbGROb2RlcyBldmVudHMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RvbS9yZXF1ZXN0LWNoaWxkLW5vZGVzLWRlcHRoLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZG9tL3JlcXVlc3QtY2hpbGQtbm9kZXMtZGVwdGguaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
ZWY5ZDk5MGRkYjgzNWM5YTYwMTlhMjY0ZDVmNzM1YjllYmIxNzZhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RvbS9yZXF1ZXN0LWNoaWxkLW5vZGVzLWRlcHRoLmh0
bWwKQEAgLTAsMCArMSwxNjIgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJv
dG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7Cisg
ICAgdmFyIGZpcnN0RGl2OworICAgIHZhciBldmVudHNDb3VudCA9IDA7CisKKyAgICBnZXREb2N1
bWVudCgpOworCisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRPTS5zZXRDaGlsZE5v
ZGVzIl0gPSBmdW5jdGlvbiBzZXRDaGlsZE5vZGVzKG1lc3NhZ2VPYmplY3QpCisgICAgeworICAg
ICAgICBldmVudHNDb3VudCsrOworCisgICAgICAgIGlmIChldmVudHNDb3VudCA9PT0gMSkKKyAg
ICAgICAgICAgIGdvdEltbWVkaWF0ZUNoaWxkcmVuKG1lc3NhZ2VPYmplY3QpOworICAgICAgICBl
bHNlIGlmIChldmVudHNDb3VudCA9PT0gMikKKyAgICAgICAgICAgIGdvdEFkZGl0aW9uYWxDaGls
ZHJlbihtZXNzYWdlT2JqZWN0KTsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnRzQ291bnQgPT09IDMp
CisgICAgICAgICAgICBnb3RBbGxDaGlsZHJlbihtZXNzYWdlT2JqZWN0KTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coSlNPTi5zdHJpbmdpZnkobWVzc2FnZU9i
amVjdCwgbnVsbCwgIiAgICAiKSk7CisgICAgfTsKKworICAgIGZ1bmN0aW9uIGdldERvY3VtZW50
KCkKKyAgICB7CisgICAgICAgIC8vIFdlIG11c3QgZmlyc3QgZ2V0IHRoZSBkb2N1bWVudCBzbyB0
aGF0IGxhdGVyIG9uIHdlIG1heSBnZXQgc2Vuc2libGUgbm9kZUlkcy4KKyAgICAgICAgc3RlcCh7
CisgICAgICAgICAgICBuYW1lOiAiR2V0IHRoZSBEb2N1bWVudCIsCisgICAgICAgICAgICBjb21t
YW5kOiAiRE9NLmdldERvY3VtZW50IiwKKyAgICAgICAgICAgIHBhcmFtZXRlcnM6IHt9LAorICAg
ICAgICAgICAgY2FsbGJhY2s6IGdldEltbWVkaWF0ZUNoaWxkcmVuCisgICAgICAgIH0pOworICAg
IH07CisKKyAgICBmdW5jdGlvbiBnZXRJbW1lZGlhdGVDaGlsZHJlbihyZXN1bHQpCisgICAgewor
ICAgICAgICB2YXIgYm9keUlkID0gcmVzdWx0LnJvb3QuY2hpbGRyZW5bMF0uY2hpbGRyZW5bMV0u
bm9kZUlkOworICAgICAgICBzdGVwKHsKKyAgICAgICAgICAgIG5hbWU6ICJHZXQgaW1tZWRpYXRl
IGNoaWxkcmVuIG9mIHRoZSBib2R5IiwKKyAgICAgICAgICAgIGNvbW1hbmQ6ICJET00ucmVxdWVz
dENoaWxkTm9kZXMiLAorICAgICAgICAgICAgcGFyYW1ldGVyczogeyJub2RlSWQiOiBib2R5SWR9
CisgICAgICAgIH0pOworICAgIH07CisKKyAgICBmdW5jdGlvbiBnb3RJbW1lZGlhdGVDaGlsZHJl
bihtZXNzYWdlT2JqZWN0KQorICAgIHsKKyAgICAgICAgZmlyc3REaXYgPSBtZXNzYWdlT2JqZWN0
LnBhcmFtcy5ub2Rlc1swXTsKKyAgICAgICAgYXNzZXJ0KCJGaXJzdCBjaGlsZCBpcyBhIGRpdiIs
IGZpcnN0RGl2LmxvY2FsTmFtZSwgImRpdiIpOworICAgICAgICBhc3NlcnQoIkZpcnN0IGNoaWxk
IGlzIGRpdiNkZXB0aC0xIiwgZmlyc3REaXYuYXR0cmlidXRlc1sxXSwgImRlcHRoLTEiKTsKKyAg
ICAgICAgYXNzZXJ0KCJGaXJzdCBjaGlsZCBoYXMgb25lIGNoaWxkIiwgZmlyc3REaXYuY2hpbGRO
b2RlQ291bnQsIDEpOworICAgICAgICBhc3NlcnQoIkZpcnN0IGNoaWxkIGhhcyBubyAuY2hpbGRy
ZW4gcHJvcGVydHkiLCBmaXJzdERpdi5jaGlsZHJlbiwgdW5kZWZpbmVkKTsKKworICAgICAgICBz
dGVwKHsKKyAgICAgICAgICAgIG5hbWU6ICJHZXQgY2hpbGRyZW4gb2YgZGl2I2RlcHRoLTEgdGhy
ZWUgbGV2ZWxzIGRlZXAiLAorICAgICAgICAgICAgY29tbWFuZDogIkRPTS5yZXF1ZXN0Q2hpbGRO
b2RlcyIsCisgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7Im5vZGVJZCI6IGZpcnN0RGl2Lm5vZGVJ
ZCwgImRlcHRoIjogM30KKyAgICAgICAgfSk7CisgICAgfTsKKworICAgIGZ1bmN0aW9uIGdvdEFk
ZGl0aW9uYWxDaGlsZHJlbihtZXNzYWdlT2JqZWN0KQorICAgIHsKKyAgICAgICAgdmFyIGRlcHRo
ID0gMTsKKyAgICAgICAgdmFyIGZpcnN0Q2hpbGQgPSBtZXNzYWdlT2JqZWN0LnBhcmFtcy5ub2Rl
c1swXTsKKyAgICAgICAgdmFyIG5vZGUgPSBmaXJzdENoaWxkOworICAgICAgICB3aGlsZSAobm9k
ZSAmJiBub2RlLmNoaWxkcmVuKSB7CisgICAgICAgICAgICBkZXB0aCsrOworICAgICAgICAgICAg
bm9kZSA9IG5vZGUuY2hpbGRyZW5bMF07CisgICAgICAgIH0KKworICAgICAgICBhc3NlcnQoImRp
diNkZXB0aC0xIGhhcyBub2RlcyAzIGxldmVscyBkZWVwIiwgZGVwdGgsIDMpOworCisgICAgICAg
IHN0ZXAoeworICAgICAgICAgICAgbmFtZTogIkdldCBhbGwgY2hpbGRyZW4gb2YgYm9keSIsCisg
ICAgICAgICAgICBjb21tYW5kOiAiRE9NLnJlcXVlc3RDaGlsZE5vZGVzIiwKKyAgICAgICAgICAg
IHBhcmFtZXRlcnM6IHsibm9kZUlkIjogZmlyc3REaXYubm9kZUlkLCAiZGVwdGgiOiAtMX0KKyAg
ICAgICAgfSk7CisgICAgfTsKKworICAgIGZ1bmN0aW9uIGdvdEFsbENoaWxkcmVuKG1lc3NhZ2VP
YmplY3QpCisgICAgeworICAgICAgICB2YXIgZGVwdGggPSAxOworICAgICAgICB2YXIgZmlyc3RD
aGlsZCA9IG1lc3NhZ2VPYmplY3QucGFyYW1zLm5vZGVzWzBdOworICAgICAgICB2YXIgbm9kZSA9
IGZpcnN0Q2hpbGQ7CisgICAgICAgIHdoaWxlIChub2RlICYmIG5vZGUuY2hpbGRyZW4pIHsKKyAg
ICAgICAgICAgIGRlcHRoKys7CisgICAgICAgICAgICBub2RlID0gbm9kZS5jaGlsZHJlblswXTsK
KyAgICAgICAgfQorCisgICAgICAgIC8vIFdlIGhhdmUgcmVxdWVzdGVkIG5vZGVzIDMtbGV2ZWwg
ZGVlcCBzbyBmYXIsIHNvCisgICAgICAgIC8vIHdlIHNob3VsZCBoYXZlIGdvdHRlbiBhbiBhZGRp
dGlvbmFsIDYgbGV2ZWxzIG9mIGRlcHRoLgorICAgICAgICBhc3NlcnQoImRpdiNkZXB0aC0xIGhh
cyBub2RlcyA5IGxldmVscyBkZWVwIiwgZGVwdGgsIDYpOworCisgICAgICAgIHN0ZXAoeworICAg
ICAgICAgICAgbmFtZTogIlBhc3MgYW4gaW52YWxpZCBkZXB0aCIsCisgICAgICAgICAgICBjb21t
YW5kOiAiRE9NLnJlcXVlc3RDaGlsZE5vZGVzIiwKKyAgICAgICAgICAgIHBhcmFtZXRlcnM6IHsi
bm9kZUlkIjogZmlyc3REaXYubm9kZUlkLCAiZGVwdGgiOiAwfSwKKyAgICAgICAgICAgIGNhbGxi
YWNrOiBmaW5pc2hUZXN0CisgICAgICAgIH0pOworICAgIH07CisKKyAgICBmdW5jdGlvbiBmaW5p
c2hUZXN0KCkKKyAgICB7CisgICAgICAgIGFzc2VydCgiRXhwZWN0ZWQgbnVtYmVyIG9mIHNldENo
aWxkTm9kZXMgZXZlbnRzIiwgZXZlbnRzQ291bnQsIDMpOworCisgICAgICAgIEluc3BlY3RvclRl
c3QuY29tcGxldGVUZXN0KCk7CisgICAgfTsKKworICAgIGZ1bmN0aW9uIHN0ZXAodGVzdCkKKyAg
ICB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJcbj09PSAiICsgdGVzdC5uYW1lICsgIiA9
PT1cbiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKHRlc3QuY29tbWFuZCwg
dGVzdC5wYXJhbWV0ZXJzLCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7CisgICAgICAgICAgICBp
ZiAobWVzc2FnZU9iamVjdC5oYXNPd25Qcm9wZXJ0eSgiZXJyb3IiKSkKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiQmFja2VuZCBlcnJvcjogIiArIG1lc3NhZ2VPYmplY3QuZXJy
b3IubWVzc2FnZSArICIgKCIgKyBtZXNzYWdlT2JqZWN0LmVycm9yLmNvZGUgKyAiKVxuIik7CisK
KyAgICAgICAgICAgIGlmICh0ZXN0LmNhbGxiYWNrKQorICAgICAgICAgICAgICAgIHRlc3QuY2Fs
bGJhY2sobWVzc2FnZU9iamVjdC5yZXN1bHQpOworICAgICAgICB9KTsKKyAgICB9OworCisgICAg
ZnVuY3Rpb24gYXNzZXJ0KG1lc3NhZ2UsIGFjdHVhbCwgZXhwZWN0ZWQpCisgICAgeworICAgICAg
ICBpZiAoYWN0dWFsID09PSBleHBlY3RlZCkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJQQVNTOiAiICsgbWVzc2FnZSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIkZBSUw6ICIgKyBtZXNzYWdlICsgIiwgZXhwZWN0ZWQgXCIiICsgZXhwZWN0
ZWQgKyAiXCIgYnV0IGdvdCBcIiIgKyBhY3R1YWwgKyAiXCIiKTsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgIH0KKyAgICB9OworfTsKKword2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBmdW5jdGlvbigpIHsKKyAgICBy
dW5UZXN0KCk7Cit9LCBmYWxzZSk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2
IGlkPSJkZXB0aC0xIj4KKyAgICA8ZGl2IGlkPSJkZXB0aC0yIj4KKyAgICAgICAgPGRpdiBpZD0i
ZGVwdGgtMyI+CisgICAgICAgICAgICA8ZGl2IGlkPSJkZXB0aC00Ij4KKyAgICAgICAgICAgICAg
ICA8ZGl2IGlkPSJkZXB0aC01Ij4KKyAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iZGVwdGgt
NiI+CisgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJkZXB0aC03Ij4KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJkZXB0aC04Ij4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPGRpdiBpZD0iZGVwdGgtOSI+CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8ZGl2IGlkPSJkZXB0aC0xMCI+CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9k
aXY+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAgICAg
ICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICAg
ICAgPC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+
Cis8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RvbS9yZXNvdXJjZXMvZG9tLXNlYXJjaC1jcmFzaC1pZnJhbWUuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kb20vcmVzb3VyY2VzL2RvbS1zZWFyY2gtY3Jhc2gtaWZyYW1lLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzNmNzFkZTFlM2YxNGU4MjFkNmY0ZWRkOTAxMDk1MWNhYWVjZTQ1Zgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcmVzb3VyY2VzL2Rv
bS1zZWFyY2gtY3Jhc2gtaWZyYW1lLmh0bWwKQEAgLTAsMCArMSwzIEBACis8c2NyaXB0PgorZG9j
dW1lbnQuZG9jdW1lbnRFbGVtZW50LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZG9j
dW1lbnRFbGVtZW50KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RvbS9yZXNvdXJjZXMvZG9tLXNlYXJjaC1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kb20vcmVzb3VyY2VzL2RvbS1zZWFyY2gtaWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmIwM2M3NjQ0YWEzOTM5ZmZiZjFjZGU3MmY0M2ZkMGY3YTdlNmNmYwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcmVzb3VyY2VzL2RvbS1zZWFyY2gtaWZyYW1l
Lmh0bWwKQEAgLTAsMCArMSw5IEBACis8aHRtbCBjbGFzcz0iaW5zaWRlLWlmcmFtZSI+CisgICAg
PGhlYWQgY2xhc3M9Imluc2lkZS1pZnJhbWUiPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBjbGFz
cz0iaW5zaWRlLWlmcmFtZSI+CisgICAgICAgIDxkaXYgY2xhc3M9ImJhc2UxIGluc2lkZS1pZnJh
bWUiPgorICAgICAgICAgICAgPHAgY2xhc3M9Imluc2lkZS1pZnJhbWUiPjwvcD4KKyAgICAgICAg
PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcmVzb3VyY2VzL2RvbS1zZWFy
Y2gtcXVlcmllcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kb20vcmVzb3VyY2VzL2RvbS1z
ZWFyY2gtcXVlcmllcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZTY1MmU1OTdlYWJlNTI1ZGEzOTQwODA0YWY0
YjFlMmFkZTIzZTEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rv
bS9yZXNvdXJjZXMvZG9tLXNlYXJjaC1xdWVyaWVzLmpzCkBAIC0wLDAgKzEsMzEgQEAKKy8vIEhh
dmluZyB0aGUgcXVlcmllcyBpbiBhbiBleHRlcm5hbCBmaWxlLCBzbyB0aGF0IERPTSBzZWFyY2gg
d2lsbCBub3QgZmluZCB0aGUgc2NyaXB0IHdoZW4gc2VhcmNoaW5nIGZvciB2YWx1ZXMuCisKK3Zh
ciBkb21TZWFyY2hRdWVyaWVzID0gWworICAgICJib2R5IiwKKyAgICAiPGJvZHkiLAorICAgICJi
b2R5PiIsCisgICAgIjxib2R5PiIsCisgICAgIjxCT0RZPiIsCisKKyAgICAvLyBBdHRyaWJ1dGUg
bmFtZXMKKyAgICAib25sb2FkIiwKKyAgICAiT05MT0FEIiwKKworICAgIC8vIEF0dHJpYnV0ZSB2
YWx1ZXMKKyAgICAicnVuVGVzdCgpIiwKKyAgICAiXCJydW5UZXN0KCkiLAorICAgICJcInJ1blRl
c3QoKVwiIiwKKyAgICAicnVuVGVzdCgpXCIiLAorICAgICJSVU5URVNUKCkiLAorICAgICJydW50
ZXN0KCkiLAorCisgICAgLy8gQ1NTIHNlbGVjdG9ycworICAgICIuYm9keS1pbnNpZGUtaWZyYW1l
IiwKKyAgICAiKiIsCisgICAgIkJPRFlbT05MT0FEXSIsCisKKyAgICAvLyBYUGF0aCBxdWVyeQor
ICAgICIvaHRtbC9ib2R5IiwKKyAgICAiL2h0bWwvYm9keS9Ab25sb2FkIiwKKyAgICAiL0hUTUwv
Qk9EWSIKK107ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2V2ZW50LWxpc3RlbmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9ldmVudC1saXN0ZW5lci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGYxNDBjMDg5ZTk5ZTJjMDU4NDBhYzIzODRjMDljZTY3N2JjMzg0MTEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2V2ZW50LWxpc3RlbmVyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDE2ICswLDAgQEAKLVRlc3RpbmcgYmFzaWMgZnVuY3Rpb25hbGl0eSBvZiBXZWJJbnNwZWN0b3Iu
RXZlbnRMaXN0ZW5lci4KLQotQ29ubmVjdGluZyB0aGUgbGlzdGVuZXIuCi1JbnZva2VkIGNhbGxi
YWNrIGZvciBrYWJvb20gZXZlbnQuCi1JbnZva2VkIGNhbGxiYWNrIGZvciBrYWJvb20gZXZlbnQu
Ci1EaXNjb25uZWN0aW5nIHRoZSBsaXN0ZW5lci4KLUNvbm5lY3RpbmcgdGhlIGxpc3RlbmVyLgot
SW52b2tlZCBjYWxsYmFjayBmb3Iga2Fib29tIGV2ZW50LgotRGlzY29ubmVjdGluZyB0aGUgbGlz
dGVuZXIuCi1Db25uZWN0aW5nIHRoZSBsaXN0ZW5lci4KLURpc2Nvbm5lY3RpbmcgdGhlIGxpc3Rl
bmVyLgotQ29ubmVjdGluZyB0aGUgc2luZ2xlLWZpcmUgbGlzdGVuZXIuCi1JbnZva2VkIGNhbGxi
YWNrIGZvciBrYWJvb20gZXZlbnQuCi1EaXNjb25uZWN0aW5nIHRoZSBzaW5nbGUtZmlyZSBsaXN0
ZW5lci4KLUludm9rZWQgY2FsbGJhY2sgZm9yIGthYm9vbSBldmVudC4KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V2ZW50LWxpc3RlbmVyLXNldC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZXZlbnQtbGlzdGVuZXItc2V0LWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODEwOThmMzRmYzc1MmZiYjY2NTc0ZGY5Njc5NmFl
YTBlNGE1YzlkMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXZlbnQtbGlzdGVuZXItc2V0LWV4cGVjdGVkLnR4dAor
KysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLVRlc3RpbmcgYmFzaWMgZnVuY3Rpb25hbGl0
eSBvZiBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lclNldC4KLQotUmVnaXN0ZXJpbmcgbGlzdGVu
ZXJzLgotSW5zdGFsbGluZyBsaXN0ZW5lcnMuCi1EaXNwYXRjaGluZyBldmVudHMuCi1JbnZva2Vk
IGNhbGxiYWNrIGZvciBmb28gZXZlbnQuCi1JbnZva2VkIGNhbGxiYWNrIGZvciBiYXIgZXZlbnQu
Ci1JbnZva2VkIGNhbGxiYWNrIGZvciBiYXogZXZlbnQuCi1Vbmluc3RhbGxpbmcgYW5kIGRpc2Nv
bm5lY3RpbmcgbGlzdGVuZXJzLgotUmVnaXN0ZXJpbmcgbGlzdGVuZXJzLgotRGlzcGF0Y2hpbmcg
ZXZlbnRzLgotSW52b2tlZCBjYWxsYmFjayBmb3IgZm9vIGV2ZW50LgotSW52b2tlZCBjYWxsYmFj
ayBmb3IgYmFyIGV2ZW50LgotSW52b2tlZCBjYWxsYmFjayBmb3IgYmF6IGV2ZW50LgotVW5pbnN0
YWxsaW5nIGxpc3RlbmVycy4KLUluc3RhbGxpbmcgbGlzdGVuZXJzLgotRGlzcGF0Y2hpbmcgZXZl
bnRzLgotSW52b2tlZCBjYWxsYmFjayBmb3IgZm9vIGV2ZW50LgotSW52b2tlZCBjYWxsYmFjayBm
b3IgYmFyIGV2ZW50LgotSW52b2tlZCBjYWxsYmFjayBmb3IgYmF6IGV2ZW50LgotVW5yZWdpc3Rl
cmluZyBldmVyeXRoaW5nLgotRGlzcGF0Y2hpbmcgZXZlbnRzLgotVW5pbnRhbGxpbmcgYW5kIGRp
c2Nvbm5lY3RpbmcgbGlzdGVuZXJzLgotRGlzcGF0Y2hpbmcgZXZlbnRzLgotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXZlbnQtbGlzdGVuZXItc2V0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZXZlbnQtbGlzdGVuZXItc2V0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGZkZTRhZjhiZjZkM2EzZGU4ZDU2YTg0YWE3NzMyODRhZThlYzliNDIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2V2ZW50LWxpc3RlbmVyLXNldC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTE3
ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24gdGVzdCgpCi17
Ci0gICAgY29uc3QgRm9vRXZlbnQgPSAiZm9vIjsKLSAgICBjb25zdCBCYXJFdmVudCA9ICJiYXIi
OwotICAgIGNvbnN0IEJhekV2ZW50ID0gImJheiI7Ci0gICAgdmFyIGVtaXR0ZXIxID0gbmV3IFdl
Ykluc3BlY3Rvci5PYmplY3QoKTsKLSAgICB2YXIgZW1pdHRlcjIgPSBuZXcgV2ViSW5zcGVjdG9y
Lk9iamVjdCgpOwotICAgIHZhciBjb250ZXh0MSA9IG5ldyBXZWJJbnNwZWN0b3IuT2JqZWN0KCk7
Ci0gICAgdmFyIGNvbnRleHQyID0gbmV3IFdlYkluc3BlY3Rvci5PYmplY3QoKTsKLSAgICB2YXIg
ZGF0YTEgPSBbMSwgMiwgM107Ci0gICAgdmFyIGRhdGEyID0gWzQsIDYsIDhdOwotCi0gICAgZnVu
Y3Rpb24gZm9vQ2FsbGJhY2soZXZlbnQpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydCh0aGlzID09PSBjb250ZXh0MSwgIkNhbGxiYWNrIGludm9rZWQgd2l0aCB3cm9uZyB8dGhp
c3wgYmluZGluZy4iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZXZlbnQudGFyZ2V0
ID09PSBlbWl0dGVyMSwgIkNhbGxiYWNrIGludm9rZWQgd2l0aCB3cm9uZyBldmVudCBlbWl0dGVy
LiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChldmVudC5kYXRhID09PSBkYXRhMSwg
IkNhbGxiYWNrIGludm9rZWQgd2l0aCB3cm9uZyBldmVudCBkYXRhLiIpOwotCi0gICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJJbnZva2VkIGNhbGxiYWNrIGZvciBmb28gZXZlbnQuIik7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gYmFyQ2FsbGJhY2soZXZlbnQpCi0gICAgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydCh0aGlzID09PSBjb250ZXh0MSwgIkNhbGxiYWNrIGludm9rZWQgd2l0
aCB3cm9uZyB8dGhpc3wgYmluZGluZy4iKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQo
ZXZlbnQudGFyZ2V0ID09PSBlbWl0dGVyMSwgIkNhbGxiYWNrIGludm9rZWQgd2l0aCB3cm9uZyBl
dmVudCBlbWl0dGVyLiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChldmVudC5kYXRh
ID09PSBkYXRhMiwgIkNhbGxiYWNrIGludm9rZWQgd2l0aCB3cm9uZyBldmVudCBkYXRhLiIpOwot
Ci0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJJbnZva2VkIGNhbGxiYWNrIGZvciBiYXIgZXZl
bnQuIik7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gYmF6Q2FsbGJhY2soZXZlbnQpCi0gICAgewot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCh0aGlzID09PSBjb250ZXh0MiwgIkNhbGxiYWNr
IGludm9rZWQgd2l0aCB3cm9uZyB8dGhpc3wgYmluZGluZy4iKTsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoZXZlbnQudGFyZ2V0ID09PSBlbWl0dGVyMiwgIkNhbGxiYWNrIGludm9rZWQg
d2l0aCB3cm9uZyBldmVudCBlbWl0dGVyLiIpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dChldmVudC5kYXRhID09PSBkYXRhMiwgIkNhbGxiYWNrIGludm9rZWQgd2l0aCB3cm9uZyBldmVu
dCBkYXRhLiIpOwotCi0gICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJJbnZva2VkIGNhbGxiYWNr
IGZvciBiYXogZXZlbnQuIik7Ci0gICAgfQotCi0gICAgLy8gVGVzdCBmb3IgbXVsdGlwbGUgZmly
aW5ncyBvZiBsaXN0ZW5lcnMgaW4gdGhlIHNldC4KLQotICAgIHZhciBsaXN0ZW5lclNldCA9IG5l
dyBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lclNldChjb250ZXh0MSk7Ci0gICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoIWVtaXR0ZXIxLmhhc0V2ZW50TGlzdGVuZXJzKEZvb0V2ZW50KSwgIkVtaXR0
ZXIgc2hvdWxkIG5vdCBoYXZlIGFueSBsaXN0ZW5lcnMuIik7Ci0gICAgZW1pdHRlcjEuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKEZvb0V2ZW50LCBkYXRhMSk7IC8vIFNob3VsZCBub3QgZmlyZSBh
bnl0aGluZy4KLQotICAgIEluc3BlY3RvclRlc3QubG9nKCJSZWdpc3RlcmluZyBsaXN0ZW5lcnMu
Iik7Ci0gICAgbGlzdGVuZXJTZXQucmVnaXN0ZXIoZW1pdHRlcjEsIEZvb0V2ZW50LCBmb29DYWxs
YmFjayk7Ci0gICAgbGlzdGVuZXJTZXQucmVnaXN0ZXIoZW1pdHRlcjEsIEJhckV2ZW50LCBiYXJD
YWxsYmFjayk7Ci0gICAgbGlzdGVuZXJTZXQucmVnaXN0ZXIoZW1pdHRlcjIsIEJhekV2ZW50LCBi
YXpDYWxsYmFjaywgY29udGV4dDIpOwotICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFlbWl0dGVy
MS5oYXNFdmVudExpc3RlbmVycyhGb29FdmVudCksICJFbWl0dGVyIHNob3VsZCBub3QgaGF2ZSBh
IGxpc3RlbmVyLiIpOwotICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFlbWl0dGVyMS5oYXNFdmVu
dExpc3RlbmVycyhCYXJFdmVudCksICJFbWl0dGVyIHNob3VsZCBub3QgaGF2ZSBhIGxpc3RlbmVy
LiIpOwotICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFlbWl0dGVyMi5oYXNFdmVudExpc3RlbmVy
cyhCYXpFdmVudCksICJFbWl0dGVyIHNob3VsZCBub3QgaGF2ZSBhIGxpc3RlbmVyLiIpOwotCi0g
ICAgSW5zcGVjdG9yVGVzdC5sb2coIkluc3RhbGxpbmcgbGlzdGVuZXJzLiIpOwotICAgIGxpc3Rl
bmVyU2V0Lmluc3RhbGwoKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChlbWl0dGVyMS5oYXNF
dmVudExpc3RlbmVycyhGb29FdmVudCksICJFbWl0dGVyIHNob3VsZCBoYXZlIGEgbGlzdGVuZXIu
Iik7Ci0gICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZW1pdHRlcjEuaGFzRXZlbnRMaXN0ZW5lcnMo
QmFyRXZlbnQpLCAiRW1pdHRlciBzaG91bGQgaGF2ZSBhIGxpc3RlbmVyLiIpOwotICAgIEluc3Bl
Y3RvclRlc3QuYXNzZXJ0KGVtaXR0ZXIyLmhhc0V2ZW50TGlzdGVuZXJzKEJhekV2ZW50KSwgIkVt
aXR0ZXIgc2hvdWxkIGhhdmUgYSBsaXN0ZW5lci4iKTsKLQotICAgIEluc3BlY3RvclRlc3QubG9n
KCJEaXNwYXRjaGluZyBldmVudHMuIik7Ci0gICAgZW1pdHRlcjEuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKEZvb0V2ZW50LCBkYXRhMSk7IC8vIFNob3VsZCBmaXJlLgotICAgIGVtaXR0ZXIxLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhCYXJFdmVudCwgZGF0YTIpOyAvLyBTaG91bGQgZmlyZS4K
LSAgICBlbWl0dGVyMi5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoQmF6RXZlbnQsIGRhdGEyKTsg
Ly8gU2hvdWxkIGZpcmUuCi0gICAgSW5zcGVjdG9yVGVzdC5sb2coIlVuaW5zdGFsbGluZyBhbmQg
ZGlzY29ubmVjdGluZyBsaXN0ZW5lcnMuIik7Ci0gICAgbGlzdGVuZXJTZXQudW5pbnN0YWxsKHRy
dWUpOwotCi0gICAgSW5zcGVjdG9yVGVzdC5sb2coIlJlZ2lzdGVyaW5nIGxpc3RlbmVycy4iKTsK
LSAgICBsaXN0ZW5lclNldC5yZWdpc3RlcihlbWl0dGVyMSwgRm9vRXZlbnQsIGZvb0NhbGxiYWNr
KTsKLSAgICBsaXN0ZW5lclNldC5yZWdpc3RlcihlbWl0dGVyMSwgQmFyRXZlbnQsIGJhckNhbGxi
YWNrKTsKLSAgICBsaXN0ZW5lclNldC5yZWdpc3RlcihlbWl0dGVyMiwgQmF6RXZlbnQsIGJhekNh
bGxiYWNrLCBjb250ZXh0Mik7Ci0KLSAgICBsaXN0ZW5lclNldC5pbnN0YWxsKCk7Ci0gICAgSW5z
cGVjdG9yVGVzdC5sb2coIkRpc3BhdGNoaW5nIGV2ZW50cy4iKTsKLSAgICBlbWl0dGVyMS5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoRm9vRXZlbnQsIGRhdGExKTsgLy8gU2hvdWxkIGZpcmUuCi0g
ICAgZW1pdHRlcjEuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKEJhckV2ZW50LCBkYXRhMik7IC8v
IFNob3VsZCBmaXJlLgotICAgIGVtaXR0ZXIyLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhCYXpF
dmVudCwgZGF0YTIpOyAvLyBTaG91bGQgZmlyZS4KLSAgICBJbnNwZWN0b3JUZXN0LmxvZygiVW5p
bnN0YWxsaW5nIGxpc3RlbmVycy4iKTsKLSAgICBsaXN0ZW5lclNldC51bmluc3RhbGwoKTsKLQot
ICAgIEluc3BlY3RvclRlc3QubG9nKCJJbnN0YWxsaW5nIGxpc3RlbmVycy4iKTsKLSAgICBsaXN0
ZW5lclNldC5pbnN0YWxsKCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5sb2coIkRpc3BhdGNoaW5nIGV2
ZW50cy4iKTsKLSAgICBlbWl0dGVyMS5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoRm9vRXZlbnQs
IGRhdGExKTsgLy8gU2hvdWxkIGZpcmUuCi0gICAgZW1pdHRlcjEuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKEJhckV2ZW50LCBkYXRhMik7IC8vIFNob3VsZCBmaXJlLgotICAgIGVtaXR0ZXIyLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhCYXpFdmVudCwgZGF0YTIpOyAvLyBTaG91bGQgZmlyZS4K
LQotICAgIEluc3BlY3RvclRlc3QubG9nKCJVbnJlZ2lzdGVyaW5nIGV2ZXJ5dGhpbmcuIik7Ci0g
ICAgbGlzdGVuZXJTZXQudW5yZWdpc3RlcigpOwotICAgIEluc3BlY3RvclRlc3QubG9nKCJEaXNw
YXRjaGluZyBldmVudHMuIik7Ci0gICAgZW1pdHRlcjEuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJz
KEZvb0V2ZW50LCBkYXRhMSk7IC8vIFNob3VsZCBub3QgZmlyZS4KLSAgICBlbWl0dGVyMS5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoQmFyRXZlbnQsIGRhdGEyKTsgLy8gU2hvdWxkIG5vdCBmaXJl
LgotICAgIGVtaXR0ZXIyLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhCYXpFdmVudCwgZGF0YTIp
OyAvLyBTaG91bGQgbm90IGZpcmUuCi0KLSAgICBJbnNwZWN0b3JUZXN0LmxvZygiVW5pbnRhbGxp
bmcgYW5kIGRpc2Nvbm5lY3RpbmcgbGlzdGVuZXJzLiIpOwotICAgIGxpc3RlbmVyU2V0LnVuaW5z
dGFsbCh0cnVlKTsKLSAgICBJbnNwZWN0b3JUZXN0LmxvZygiRGlzcGF0Y2hpbmcgZXZlbnRzLiIp
OwotICAgIGVtaXR0ZXIxLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhGb29FdmVudCwgZGF0YTEp
OyAvLyBTaG91bGQgbm90IGZpcmUuCi0gICAgZW1pdHRlcjEuZGlzcGF0Y2hFdmVudFRvTGlzdGVu
ZXJzKEJhckV2ZW50LCBkYXRhMik7IC8vIFNob3VsZCBub3QgZmlyZS4KLSAgICBlbWl0dGVyMi5k
aXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoQmF6RXZlbnQsIGRhdGEyKTsgLy8gU2hvdWxkIG5vdCBm
aXJlLgotCi0gICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIWVtaXR0ZXIxLmhhc0V2ZW50TGlzdGVu
ZXJzKEZvb0V2ZW50KSwgIkVtaXR0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgbGlzdGVuZXIuIik7Ci0g
ICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIWVtaXR0ZXIxLmhhc0V2ZW50TGlzdGVuZXJzKEJhckV2
ZW50KSwgIkVtaXR0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgbGlzdGVuZXIuIik7Ci0gICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnQoIWVtaXR0ZXIyLmhhc0V2ZW50TGlzdGVuZXJzKEJhekV2ZW50KSwgIkVt
aXR0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgbGlzdGVuZXIuIik7Ci0KLSAgICBJbnNwZWN0b3JUZXN0
LmNvbXBsZXRlVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Ci0gICAgPHA+VGVzdGluZyBiYXNpYyBmdW5jdGlvbmFsaXR5IG9mIFdlYkluc3Bl
Y3Rvci5FdmVudExpc3RlbmVyU2V0LjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9ldmVudC1saXN0ZW5lci5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2V2ZW50LWxpc3RlbmVyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDZhOTI1MDk4ZDUyYzc3ZmVlNjIwNDQ3YTNmNmRjOGZlZTIwNmZlYWUuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2V2ZW50LWxpc3RlbmVyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5MyArMCwwIEBACi08IWRv
Y3R5cGUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIGNvbnN0IEth
Ym9vbUV2ZW50ID0gImthYm9vbSI7Ci0gICAgdmFyIGVtaXR0ZXIgPSBuZXcgV2ViSW5zcGVjdG9y
Lk9iamVjdCgpOwotICAgIHZhciBjb250ZXh0ID0gbmV3IFdlYkluc3BlY3Rvci5PYmplY3QoKTsK
LSAgICB2YXIgZGF0YSA9IFsxLCAyLCAzXTsKLQotICAgIGZ1bmN0aW9uIGthYm9vbUNhbGxiYWNr
KGV2ZW50KSB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHRoaXMgPT09IGNvbnRleHQs
ICJDYWxsYmFjayBpbnZva2VkIHdpdGggd3JvbmcgfHRoaXN8IGJpbmRpbmcuIik7Ci0gICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50LnRhcmdldCA9PT0gZW1pdHRlciwgIkNhbGxiYWNr
IGludm9rZWQgd2l0aCB3cm9uZyBldmVudCBlbWl0dGVyLiIpOwotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydChldmVudC5kYXRhID09PSBkYXRhLCAiQ2FsbGJhY2sgaW52b2tlZCB3aXRoIHdy
b25nIGV2ZW50IGRhdGEuIik7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkludm9rZWQg
Y2FsbGJhY2sgZm9yIGthYm9vbSBldmVudC4iKTsKLSAgICB9Ci0KLSAgICAvLyBUZXN0IGZvciBt
dWx0aXBsZSBmaXJpbmdzIG9mIHRoZSBsaXN0ZW5lci4KLQotICAgIHZhciBsaXN0ZW5lciA9IG5l
dyBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lcihjb250ZXh0KTsKLSAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydCghZW1pdHRlci5oYXNFdmVudExpc3RlbmVycyhLYWJvb21FdmVudCksICJFbWl0dGVy
IHNob3VsZCBub3QgaGF2ZSBhbnkgbGlzdGVuZXJzLiIpOwotICAgIGVtaXR0ZXIuZGlzcGF0Y2hF
dmVudFRvTGlzdGVuZXJzKEthYm9vbUV2ZW50LCBkYXRhKTsgLy8gU2hvdWxkIG5vdCBmaXJlIGFu
eXRoaW5nLgotCi0gICAgSW5zcGVjdG9yVGVzdC5sb2coIkNvbm5lY3RpbmcgdGhlIGxpc3RlbmVy
LiIpOwotICAgIGxpc3RlbmVyLmNvbm5lY3QoZW1pdHRlciwgS2Fib29tRXZlbnQsIGthYm9vbUNh
bGxiYWNrKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChlbWl0dGVyLmhhc0V2ZW50TGlzdGVu
ZXJzKEthYm9vbUV2ZW50KSwgIkVtaXR0ZXIgc2hvdWxkIGhhdmUgYSBsaXN0ZW5lci4iKTsKLSAg
ICBlbWl0dGVyLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhLYWJvb21FdmVudCwgZGF0YSk7IC8v
IFNob3VsZCBmaXJlLgotICAgIGVtaXR0ZXIuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKEthYm9v
bUV2ZW50LCBkYXRhKTsgLy8gU2hvdWxkIGZpcmUuCi0gICAgSW5zcGVjdG9yVGVzdC5sb2coIkRp
c2Nvbm5lY3RpbmcgdGhlIGxpc3RlbmVyLiIpOwotICAgIGxpc3RlbmVyLmRpc2Nvbm5lY3QoKTsK
LQotICAgIGVtaXR0ZXIuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKEthYm9vbUV2ZW50LCBkYXRh
KTsgLy8gU2hvdWxkIG5vdCBmaXJlIGFueXRoaW5nLgotICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0
KCFlbWl0dGVyLmhhc0V2ZW50TGlzdGVuZXJzKEthYm9vbUV2ZW50KSwgIkVtaXR0ZXIgc2hvdWxk
IG5vdCBoYXZlIGFueSBsaXN0ZW5lcnMuIik7Ci0KLSAgICAvLyBUZXN0IHJlY29ubmVjdGlvbi4K
LQotICAgIEluc3BlY3RvclRlc3QubG9nKCJDb25uZWN0aW5nIHRoZSBsaXN0ZW5lci4iKTsKLSAg
ICBsaXN0ZW5lci5jb25uZWN0KGVtaXR0ZXIsIEthYm9vbUV2ZW50LCBrYWJvb21DYWxsYmFjayk7
Ci0gICAgZW1pdHRlci5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoS2Fib29tRXZlbnQsIGRhdGEp
OyAvLyBTaG91bGQgZmlyZS4KLSAgICBJbnNwZWN0b3JUZXN0LmxvZygiRGlzY29ubmVjdGluZyB0
aGUgbGlzdGVuZXIuIik7Ci0gICAgbGlzdGVuZXIuZGlzY29ubmVjdCgpOwotCi0gICAgLy8gVGVz
dCB1bnVzZWQgbGlzdGVuZXIuCi0KLSAgICBJbnNwZWN0b3JUZXN0LmxvZygiQ29ubmVjdGluZyB0
aGUgbGlzdGVuZXIuIik7Ci0gICAgbGlzdGVuZXIuY29ubmVjdChlbWl0dGVyLCBLYWJvb21FdmVu
dCwga2Fib29tQ2FsbGJhY2spOwotICAgIEluc3BlY3RvclRlc3QubG9nKCJEaXNjb25uZWN0aW5n
IHRoZSBsaXN0ZW5lci4iKTsKLSAgICBsaXN0ZW5lci5kaXNjb25uZWN0KCk7Ci0KLSAgICAvLyBU
ZXN0IGZvciBzaW5nbGUgZmlyaW5nIG9mIHRoZSBsaXN0ZW5lci4KLQotICAgIHZhciBzaW5nbGVM
aXN0ZW5lciA9IG5ldyBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lcihjb250ZXh0LCB0cnVlKTsK
LSAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghZW1pdHRlci5oYXNFdmVudExpc3RlbmVycyhLYWJv
b21FdmVudCksICJFbWl0dGVyIHNob3VsZCBub3QgaGF2ZSBhbnkgbGlzdGVuZXJzLiIpOwotICAg
IGVtaXR0ZXIuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKEthYm9vbUV2ZW50LCBkYXRhKTsgLy8g
U2hvdWxkIG5vdCBmaXJlIGFueXRoaW5nLgotCi0gICAgSW5zcGVjdG9yVGVzdC5sb2coIkNvbm5l
Y3RpbmcgdGhlIHNpbmdsZS1maXJlIGxpc3RlbmVyLiIpOwotICAgIHNpbmdsZUxpc3RlbmVyLmNv
bm5lY3QoZW1pdHRlciwgS2Fib29tRXZlbnQsIGthYm9vbUNhbGxiYWNrKTsKLSAgICBJbnNwZWN0
b3JUZXN0LmFzc2VydChlbWl0dGVyLmhhc0V2ZW50TGlzdGVuZXJzKEthYm9vbUV2ZW50KSwgIkVt
aXR0ZXIgc2hvdWxkIGhhdmUgYSBsaXN0ZW5lci4iKTsKLSAgICBlbWl0dGVyLmRpc3BhdGNoRXZl
bnRUb0xpc3RlbmVycyhLYWJvb21FdmVudCwgZGF0YSk7IC8vIFNob3VsZCBmaXJlLgotICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0KCFlbWl0dGVyLmhhc0V2ZW50TGlzdGVuZXJzKEthYm9vbUV2ZW50
KSwgIkVtaXR0ZXIgc2hvdWxkIG5vdCBoYXZlIGFueSBsaXN0ZW5lcnMuIik7Ci0gICAgZW1pdHRl
ci5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoS2Fib29tRXZlbnQsIGRhdGEpOyAvLyBTaG91bGQg
bm90IGZpcmUuCi0gICAgSW5zcGVjdG9yVGVzdC5sb2coIkRpc2Nvbm5lY3RpbmcgdGhlIHNpbmds
ZS1maXJlIGxpc3RlbmVyLiIpOwotICAgIHNpbmdsZUxpc3RlbmVyLmRpc2Nvbm5lY3QoKTsgLy8g
U2hvdWxkIGNhdXNlIGFuIGVycm9yLgotICAgIGVtaXR0ZXIuZGlzcGF0Y2hFdmVudFRvTGlzdGVu
ZXJzKEthYm9vbUV2ZW50LCBkYXRhKTsgLy8gU2hvdWxkIG5vdCBmaXJlLgotCi0gICAgLy8gVGVz
dCBmb3IgdmFyaW91cyBlcnJvciBjYXNlcyBhbmQgYWJ1c2UuCi0KLSAgICB2YXIgYmFkTGlzdGVu
ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXIoY29udGV4dCk7Ci0gICAgYmFkTGlz
dGVuZXIuY29ubmVjdChkYXRhLCBkYXRhLCBkYXRhKTsgLy8gU2hvdWxkIGNvbXBsYWluIGFib3V0
IG5vbi1jYWxsYWJsZSBjYWxsYmFjay4KLSAgICBiYWRMaXN0ZW5lci5jb25uZWN0KG51bGwsIEth
Ym9vbUV2ZW50LCBrYWJvb21DYWxsYmFjayk7IC8vIFNob3VsZCBjb21wbGFpbiBhYm91dCBub24t
Y2FsbGFibGUgY2FsbGJhY2suCi0gICAgYmFkTGlzdGVuZXIuY29ubmVjdChlbWl0dGVyLCBLYWJv
b21FdmVudCwgbnVsbCk7IC8vIFNob3VsZCBjb21wbGFpbiBhYm91dCBub24tY2FsbGFibGUgY2Fs
bGJhY2suCi0gICAgYmFkTGlzdGVuZXIuY29ubmVjdChlbWl0dGVyLCBudWxsLCBrYWJvb21DYWxs
YmFjayk7IC8vIFNob3VsZCBjb21wbGFpbiBhYm91dCBudWxsIGV2ZW50LgotCi0gICAgdmFyIGJh
ZExpc3RlbmVyMiA9IG5ldyBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lcihjb250ZXh0KTsKLSAg
ICBiYWRMaXN0ZW5lcjIuZGlzY29ubmVjdCgpOyAvLyBTaG91bGQgY29tcGxhaW4gYWJvdXQgYWxy
ZWFkeSBkaXNjb25uZWN0ZWQuCi0gICAgYmFkTGlzdGVuZXIyLmNvbm5lY3QoZW1pdHRlciwgS2Fi
b29tRXZlbnQsIGthYm9vbUNhbGxiYWNrKTsKLSAgICBiYWRMaXN0ZW5lcjIuY29ubmVjdChlbWl0
dGVyLCBLYWJvb21FdmVudCwga2Fib29tQ2FsbGJhY2spOyAvLyBTaG91bGQgY29tcGxhaW4gYWJv
dXQgYWxyZWFkeSBjb25uZWN0ZWQuCi0gICAgZW1pdHRlci5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5l
cnMoS2Fib29tRXZlbnQsIGRhdGEpOyAvLyBTaG91bGQgZmlyZS4KLSAgICBiYWRMaXN0ZW5lcjIu
Y29ubmVjdChlbWl0dGVyLCBLYWJvb21FdmVudCwga2Fib29tQ2FsbGJhY2spOyAvLyBTaG91bGQg
Y29tcGxhaW4gYWJvdXQgYWxyZWFkeSBjb25uZWN0ZWQuCi0gICAgYmFkTGlzdGVuZXIyLmRpc2Nv
bm5lY3QoKTsKLSAgICBiYWRMaXN0ZW5lcjIuZGlzY29ubmVjdCgpOyAvLyBTaG91bGQgY29tcGxh
aW4gYWJvdXQgYWxyZWFkeSBkaXNjb25uZWN0ZWQuCi0KLSAgICBJbnNwZWN0b3JUZXN0LmNvbXBs
ZXRlVGVzdCgpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3Qo
KSI+Ci0gICAgPHA+VGVzdGluZyBiYXNpYyBmdW5jdGlvbmFsaXR5IG9mIFdlYkluc3BlY3Rvci5F
dmVudExpc3RlbmVyLjwvcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci9sYXllcnMvbGF5ZXJzLWFub255bW91cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvbGF5ZXJzL2xheWVycy1hbm9ueW1vdXMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZkOTU5NWVkYWU0ZDVkMmZkNjkwZTRkODY5ZTJhYmY3NThlNmVjYmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbGF5ZXJzL2xheWVycy1hbm9ueW1v
dXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjggQEAKK1RoaXMgaXMgYSB0ZXN0CisKKworPT09
IEVuYWJsZSB0aGUgTGF5ZXJUcmVlIGFnZW50ID09PQorCitQQVNTCisKKz09PSBHZXQgdGhlIERv
Y3VtZW50ID09PQorCitQQVNTCisKKz09PSBHZXQgdGhlIGxheWVyIHRyZWUgPT09CisKK1BBU1MK
KworPT09IENoZWNrIGxheWVycyA9PT0KKworUEFTUzogRXhwZWN0ZWQgbnVtYmVyIG9mIGFub255
bW91cyBsYXllcnMuCitQQVNTOiBUaGUgc29sZSBhbm9ueW1vdXMgbGF5ZXIgaGFzIGEgbm9uLXpl
cm8gbm9kZSBpZC4KK1BBU1M6IFRoZSBzb2xlIGFub255bW91cyBsYXllciBoYXMgYSA6Zmlyc3Qt
bGV0dGVyIHBzZXVkby1lbGVtZW50LgorCis9PT0gQ2hlY2sgbm9kZSA9PT0KKworUEFTUzogTm9k
ZSB3YXMgZm91bmQuCitQQVNTOiBOb2RlIGhhcyBleHBlY3RlZCBsb2NhbE5hbWUuCitQQVNTOiBO
b2RlIGhhcyBpZC4KK1BBU1M6IE5vZGUgaGFzIGV4cGVjdGVkIGlkLgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvbGF5ZXJzL2xheWVycy1hbm9ueW1vdXMuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9sYXllcnMvbGF5ZXJzLWFub255bW91cy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmRjMDhiNDI5Y2E4NTBmYTZhMjc2OWRhNzY3MDQyMGZmZmIzNWVmZWIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbGF5ZXJzL2xheWVycy1hbm9ueW1vdXMuaHRtbApA
QCAtMCwwICsxLDE0MCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2Nv
bC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKwor
ZnVuY3Rpb24gdGVzdCgpCit7CisKKyAgICB2YXIgbm9kZXM7CisgCisgICAgSW5zcGVjdG9yVGVz
dC5ldmVudEhhbmRsZXJbIkRPTS5zZXRDaGlsZE5vZGVzIl0gPSBzZXRDaGlsZE5vZGVzOworCisg
ICAgZW5hYmxlTGF5ZXJUcmVlQWdlbnQoKTsKKyAgICAKKyAgICBmdW5jdGlvbiBlbmFibGVMYXll
clRyZWVBZ2VudChyZXN1bHQpCisgICAgeworICAgICAgICBzdGVwKHsKKyAgICAgICAgICAgIG5h
bWU6ICJFbmFibGUgdGhlIExheWVyVHJlZSBhZ2VudCIsCisgICAgICAgICAgICBjb21tYW5kOiAi
TGF5ZXJUcmVlLmVuYWJsZSIsCisgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7fSwKKyAgICAgICAg
ICAgIGNhbGxiYWNrOiBnZXREb2N1bWVudAorICAgICAgICB9KTsKKyAgICB9OworCisgICAgZnVu
Y3Rpb24gZ2V0RG9jdW1lbnQoKQorICAgIHsKKyAgICAgICAgLy8gV2UgbXVzdCBmaXJzdCBnZXQg
dGhlIGRvY3VtZW50IHNvIHRoYXQgbGF0ZXIgb24gd2UgbWF5IGdldCBzZW5zaWJsZSBub2RlSWRz
LgorICAgICAgICBzdGVwKHsKKyAgICAgICAgICAgIG5hbWU6ICJHZXQgdGhlIERvY3VtZW50IiwK
KyAgICAgICAgICAgIGNvbW1hbmQ6ICJET00uZ2V0RG9jdW1lbnQiLAorICAgICAgICAgICAgcGFy
YW1ldGVyczoge30sCisgICAgICAgICAgICBjYWxsYmFjazogZ2V0TGF5ZXJUcmVlCisgICAgICAg
IH0pOworICAgIH07CisKKyAgICBmdW5jdGlvbiBnZXRMYXllclRyZWUocmVzdWx0KQorICAgIHsK
KyAgICAgICAgc3RlcCh7CisgICAgICAgICAgICBuYW1lOiAiR2V0IHRoZSBsYXllciB0cmVlIiwK
KyAgICAgICAgICAgIGNvbW1hbmQ6ICJMYXllclRyZWUubGF5ZXJzRm9yTm9kZSIsCisgICAgICAg
ICAgICBwYXJhbWV0ZXJzOiB7Im5vZGVJZCI6IHJlc3VsdC5yb290Lm5vZGVJZH0sCisgICAgICAg
ICAgICBjYWxsYmFjazogZ290TGF5ZXJUcmVlCisgICAgICAgIH0pOworICAgIH07CisKKyAgICBm
dW5jdGlvbiBnb3RMYXllclRyZWUocmVzdWx0KQorICAgIHsKKyAgICAgICAgdmFyIGFub255bW91
c0xheWVycyA9IHJlc3VsdC5sYXllcnMuZmlsdGVyKGZ1bmN0aW9uIChsYXllcikgeworICAgICAg
ICAgICAgcmV0dXJuIGxheWVyLmlzQW5vbnltb3VzOworICAgICAgICB9KTsKKworICAgICAgICBs
b2dUZXN0TmFtZSgiQ2hlY2sgbGF5ZXJzIik7CisKKyAgICAgICAgYXNzZXJ0KCJFeHBlY3RlZCBu
dW1iZXIgb2YgYW5vbnltb3VzIGxheWVycyIsIGFub255bW91c0xheWVycy5sZW5ndGgsIDEpOwor
ICAgICAgICBhc3NlcnQoIlRoZSBzb2xlIGFub255bW91cyBsYXllciBoYXMgYSBub24temVybyBu
b2RlIGlkIiwgYW5vbnltb3VzTGF5ZXJzWzBdLm5vZGVJZCAhPT0gMCwgdHJ1ZSk7CisgICAgICAg
IGFzc2VydCgiVGhlIHNvbGUgYW5vbnltb3VzIGxheWVyIGhhcyBhIDpmaXJzdC1sZXR0ZXIgcHNl
dWRvLWVsZW1lbnQiLCBhbm9ueW1vdXNMYXllcnNbMF0ucHNldWRvRWxlbWVudCA9PT0gImZpcnN0
LWxldHRlciIsIHRydWUpOworCisgICAgICAgIHZhciBub2RlOworICAgICAgICB2YXIgbm9kZUlk
ID0gYW5vbnltb3VzTGF5ZXJzWzBdLm5vZGVJZDsKKyAgICAgICAgZm9yICh2YXIgaSA9IDAsIGNv
dW50ID0gbm9kZXMubGVuZ3RoOyBpIDwgY291bnQ7ICsraSkgeworICAgICAgICAgICAgaWYgKG5v
ZGVzW2ldLm5vZGVJZCA9PT0gbm9kZUlkKSB7CisgICAgICAgICAgICAgICAgbm9kZSA9IG5vZGVz
W2ldOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisK
KyAgICAgICAgbG9nVGVzdE5hbWUoIkNoZWNrIG5vZGUiKTsKKyAgICAgICAgCisgICAgICAgIGFz
c2VydCgiTm9kZSB3YXMgZm91bmQiLCAhIW5vZGUsIHRydWUpOworICAgICAgICBhc3NlcnQoIk5v
ZGUgaGFzIGV4cGVjdGVkIGxvY2FsTmFtZSIsIG5vZGUubG9jYWxOYW1lLCAicCIpOworICAgICAg
ICBhc3NlcnQoIk5vZGUgaGFzIGlkIiwgbm9kZS5hdHRyaWJ1dGVzWzBdLCAiaWQiKTsKKyAgICAg
ICAgYXNzZXJ0KCJOb2RlIGhhcyBleHBlY3RlZCBpZCIsIG5vZGUuYXR0cmlidXRlc1sxXSwgImZp
cnN0LWxldHRlciIpOworICAgICAgICAKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRl
c3QoKTsKKyAgICB9OworCisgICAgZnVuY3Rpb24gc2V0Q2hpbGROb2RlcyAobWVzc2FnZU9iamVj
dCkgeworICAgICAgICBub2RlcyA9IG1lc3NhZ2VPYmplY3QucGFyYW1zLm5vZGVzOworICAgIH07
CisKKyAgICBmdW5jdGlvbiBzdGVwKHRlc3QpCisgICAgeworICAgICAgICBpZiAodGVzdC5jYWxs
YmFjaykKKyAgICAgICAgICAgIGxvZ1Rlc3ROYW1lKHRlc3QubmFtZSk7CisgICAgICAgIHJ1bkNv
bW1hbmQodGVzdCk7CisgICAgfTsKKworICAgIGZ1bmN0aW9uIGxvZ1Rlc3ROYW1lKG5hbWUpCisg
ICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiXG49PT0gIiArIG5hbWUgKyAiID09PVxu
Iik7CisgICAgfTsKKworICAgIGZ1bmN0aW9uIHJ1bkNvbW1hbmQoY29tbWFuZCkKKyAgICB7Cisg
ICAgICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoY29tbWFuZC5jb21tYW5kLCBjb21tYW5k
LnBhcmFtZXRlcnMsIGZ1bmN0aW9uKG1lc3NhZ2VPYmplY3QpIHsKKyAgICAgICAgICAgIGlmICht
ZXNzYWdlT2JqZWN0Lmhhc093blByb3BlcnR5KCJlcnJvciIpKSB7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6ICIgKyBtZXNzYWdlT2JqZWN0LmVycm9yLm1lc3NhZ2Ug
KyAiICgiICsgbWVzc2FnZU9iamVjdC5lcnJvci5jb2RlICsgIikiKTsKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNvbW1hbmQubmFtZSkKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUyIpOworCisgICAgICAgICAgICBpZiAoY29t
bWFuZC5jYWxsYmFjaykKKyAgICAgICAgICAgICAgICBjb21tYW5kLmNhbGxiYWNrKG1lc3NhZ2VP
YmplY3QucmVzdWx0KTsKKyAgICAgICAgfSk7CisgICAgfTsKKworICAgIGZ1bmN0aW9uIGFzc2Vy
dChuYW1lLCBhY3R1YWwsIGV4cGVjdGVkKQorICAgIHsKKyAgICAgICAgaWYgKGV4cGVjdGVkID09
PSBhY3R1YWwpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogIiArIG5hbWUg
KyAiLiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJ
TDogIiArIG5hbWUgKyAiLiBFeHBlY3RlZCAiICsgZXhwZWN0ZWQgKyAiIGJ1dCBnb3QgIiArIGFj
dHVhbCk7CisgICAgfTsKKworfTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRl
bnRMb2FkZWQiLCBmdW5jdGlvbigpCit7CisgICAgcnVuVGVzdCgpOworfSwgZmFsc2UpOworCis8
L3NjcmlwdD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisKKyAgICAjZmlyc3QtbGV0dGVyOjpm
aXJzdC1sZXR0ZXIgeworICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgLXdlYmtpdC10cmFu
c2Zvcm06IHRyYW5zbGF0ZVooMCk7CisgICAgfQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
CisKKyAgICA8cCBpZD0iZmlyc3QtbGV0dGVyIj5UaGlzIGlzIGEgdGVzdDwvcD4KKworPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2xheWVycy9sYXll
cnMtYmxlbmRpbmctY29tcG9zaXRpbmctcmVhc29ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvbGF5ZXJzL2xheWVycy1ibGVuZGluZy1jb21wb3NpdGluZy1yZWFzb25zLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTg3NTg1NTFkMDBhNDBkZmQ0NmI0NGMzNzliYzllMjA2
YTgwZjk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2xheWVycy9s
YXllcnMtYmxlbmRpbmctY29tcG9zaXRpbmctcmVhc29ucy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxOCBAQAorCis9PT0gRW5hYmxlIHRoZSBMYXllclRyZWUgYWdlbnQgPT09CisKK1BBU1MKKwor
PT09IEdldCB0aGUgRG9jdW1lbnQgPT09CisKK1BBU1MKKworPT09IEdldCB0aGUgbGF5ZXIgdHJl
ZSA9PT0KKworUEFTUworCis9PT0gQ2hlY2sgbGF5ZXJzJyByZWFzb25zIGZvciBjb21wb3NpdGlu
ZyA9PT0KKworUEFTUzogPGRpdiBpZD0iaXNvbGF0aW5nIj4gaXMgY29tcG9zaXRpb24gZHVlIHRv
IGlzb2xhdGluZyBjb21wb3NpdGluZyBkZXNjZW5kYW50cyBoYXZpbmcgQ1NTIGJsZW5kaW5nIGFw
cGxpZWQuCitQQVNTOiA8ZGl2IGlkPSJibGVuZGluZyI+IGlzIGNvbXBvc2l0ZWQgZHVlIGhhdmlu
ZyBDU1MgYmxlbmRpbmcgYXBwbGllZCBhbmQgY29tcG9zaXRlZCBkZXNjZW5kYW50cy4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2xheWVycy9sYXllcnMtYmxlbmRpbmctY29t
cG9zaXRpbmctcmVhc29ucy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2xheWVycy9sYXll
cnMtYmxlbmRpbmctY29tcG9zaXRpbmctcmVhc29ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA5NDBiOTI3
YjcyZDU5MmI2ZjRjY2NmZjIxNDQ2ZDQwYmVkNTZkNGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvbGF5ZXJzL2xheWVycy1ibGVuZGluZy1jb21wb3NpdGluZy1yZWFz
b25zLmh0bWwKQEAgLTAsMCArMSwxNjMgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CisKK2Z1bmN0aW9uIHRlc3QoKQoreworCisgICAgdmFyIG5vZGVzID0gW107CisgCisg
ICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIkRPTS5zZXRDaGlsZE5vZGVzIl0gPSBzZXRD
aGlsZE5vZGVzOworCisgICAgZW5hYmxlTGF5ZXJUcmVlQWdlbnQoKTsKKyAgICAKKyAgICBmdW5j
dGlvbiBlbmFibGVMYXllclRyZWVBZ2VudChyZXN1bHQpCisgICAgeworICAgICAgICBzdGVwKHsK
KyAgICAgICAgICAgIG5hbWU6ICJFbmFibGUgdGhlIExheWVyVHJlZSBhZ2VudCIsCisgICAgICAg
ICAgICBjb21tYW5kOiAiTGF5ZXJUcmVlLmVuYWJsZSIsCisgICAgICAgICAgICBwYXJhbWV0ZXJz
OiB7fSwKKyAgICAgICAgICAgIGNhbGxiYWNrOiBnZXREb2N1bWVudAorICAgICAgICB9KTsKKyAg
ICB9OworCisgICAgZnVuY3Rpb24gZ2V0RG9jdW1lbnQoKQorICAgIHsKKyAgICAgICAgLy8gV2Ug
bXVzdCBmaXJzdCBnZXQgdGhlIGRvY3VtZW50IHNvIHRoYXQgbGF0ZXIgb24gd2UgbWF5IGdldCBz
ZW5zaWJsZSBub2RlSWRzLgorICAgICAgICBzdGVwKHsKKyAgICAgICAgICAgIG5hbWU6ICJHZXQg
dGhlIERvY3VtZW50IiwKKyAgICAgICAgICAgIGNvbW1hbmQ6ICJET00uZ2V0RG9jdW1lbnQiLAor
ICAgICAgICAgICAgcGFyYW1ldGVyczoge30sCisgICAgICAgICAgICBjYWxsYmFjazogZ2V0TGF5
ZXJUcmVlCisgICAgICAgIH0pOworICAgIH07CisKKyAgICBmdW5jdGlvbiBnZXRMYXllclRyZWUo
cmVzdWx0KQorICAgIHsKKyAgICAgICAgc3RlcCh7CisgICAgICAgICAgICBuYW1lOiAiR2V0IHRo
ZSBsYXllciB0cmVlIiwKKyAgICAgICAgICAgIGNvbW1hbmQ6ICJMYXllclRyZWUubGF5ZXJzRm9y
Tm9kZSIsCisgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7Im5vZGVJZCI6IHJlc3VsdC5yb290Lm5v
ZGVJZH0sCisgICAgICAgICAgICBjYWxsYmFjazogZ290TGF5ZXJUcmVlCisgICAgICAgIH0pOwor
ICAgIH07CisKKyAgICBmdW5jdGlvbiBnb3RMYXllclRyZWUocmVzdWx0KQorICAgIHsKKyAgICAg
ICAgbG9nVGVzdE5hbWUoIkNoZWNrIGxheWVycycgcmVhc29ucyBmb3IgY29tcG9zaXRpbmciKQor
ICAgICAgICAKKyAgICAgICAgdmFyIGxheWVycyA9IHJlc3VsdC5sYXllcnM7CisKKyAgICAgICAg
dmFyIG5vZGVzQnlJZCA9IHt9OworICAgICAgICBub2Rlcy5mb3JFYWNoKGZ1bmN0aW9uKG5vZGUp
IHsKKyAgICAgICAgICAgIG5vZGVzQnlJZFtub2RlLm5vZGVJZF0gPSBub2RlOworICAgICAgICB9
KTsKKworICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAgICAKKyAgICAgICAgZnVuY3Rpb24g
aGFzSWQobm9kZSwgaWQpIHsKKyAgICAgICAgICAgIHJldHVybiBub2RlICYmIG5vZGUuYXR0cmli
dXRlcyAmJiBub2RlLmF0dHJpYnV0ZXNbMF0gPT09ICJpZCIgJiYgbm9kZS5hdHRyaWJ1dGVzWzFd
ID09PSBpZDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgZnVuY3Rpb24gZHVtcFJlYXNv
bnMobGF5ZXIsIGNvbXBvc2l0aW5nUmVhc29ucykgeworICAgICAgICAgICAgdmFyIG5vZGUgPSBu
b2Rlc0J5SWRbbGF5ZXIubm9kZUlkXTsKKworICAgICAgICAgICAgaWYgKGhhc0lkKG5vZGUsICJi
bGVuZGluZyIpKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0KAorICAgICAgICAgICAgICAgICAg
ICAiPGRpdiBpZD1cImJsZW5kaW5nXCI+IGlzIGNvbXBvc2l0ZWQgZHVlIGhhdmluZyBDU1MgYmxl
bmRpbmcgYXBwbGllZCBhbmQgY29tcG9zaXRlZCBkZXNjZW5kYW50cyIsCisgICAgICAgICAgICAg
ICAgICAgIGNvbXBvc2l0aW5nUmVhc29ucy5ibGVuZGluZ1dpdGhDb21wb3NpdGVkRGVzY2VuZGFu
dHMsCisgICAgICAgICAgICAgICAgICAgIHRydWUpOworICAgICAgICAgICAgfSBlbHNlIGlmICho
YXNJZChub2RlLCAiaXNvbGF0aW5nIikpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQoCisgICAg
ICAgICAgICAgICAgICAgICI8ZGl2IGlkPVwiaXNvbGF0aW5nXCI+IGlzIGNvbXBvc2l0aW9uIGR1
ZSB0byBpc29sYXRpbmcgY29tcG9zaXRpbmcgZGVzY2VuZGFudHMgaGF2aW5nIENTUyBibGVuZGlu
ZyBhcHBsaWVkIiwKKyAgICAgICAgICAgICAgICAgICAgY29tcG9zaXRpbmdSZWFzb25zLmlzb2xh
dGVzQ29tcG9zaXRlZEJsZW5kaW5nRGVzY2VuZGFudHMsCisgICAgICAgICAgICAgICAgICAgIHRy
dWUpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoKytjb3VudCA9PT0gbGF5ZXJz
Lmxlbmd0aCkKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwor
ICAgICAgICB9OworCisgICAgICAgIGxheWVycy5mb3JFYWNoKGZ1bmN0aW9uIChsYXllcikgewor
ICAgICAgICAgICAgcnVuQ29tbWFuZCh7CisgICAgICAgICAgICAgICAgY29tbWFuZDogIkxheWVy
VHJlZS5yZWFzb25zRm9yQ29tcG9zaXRpbmdMYXllciIsCisgICAgICAgICAgICAgICAgcGFyYW1l
dGVyczogeyJsYXllcklkIjogbGF5ZXIubGF5ZXJJZH0sCisgICAgICAgICAgICAgICAgY2FsbGJh
Y2s6IGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBkdW1wUmVhc29ucyhs
YXllciwgcmVzdWx0LmNvbXBvc2l0aW5nUmVhc29ucyk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH07CisKKyAgICBmdW5jdGlvbiBzZXRDaGls
ZE5vZGVzIChtZXNzYWdlT2JqZWN0KSB7CisgICAgICAgIG1lc3NhZ2VPYmplY3QucGFyYW1zLm5v
ZGVzLmZvckVhY2goZnVuY3Rpb24gKG5vZGUpIHsKKyAgICAgICAgICAgIG5vZGVzLnB1c2gobm9k
ZSk7CisgICAgICAgIH0pCisgICAgfTsKKworICAgIGZ1bmN0aW9uIHN0ZXAodGVzdCkKKyAgICB7
CisgICAgICAgIGlmICh0ZXN0LmNhbGxiYWNrKQorICAgICAgICAgICAgbG9nVGVzdE5hbWUodGVz
dC5uYW1lKTsKKyAgICAgICAgcnVuQ29tbWFuZCh0ZXN0KTsKKyAgICB9OworCisgICAgZnVuY3Rp
b24gbG9nVGVzdE5hbWUobmFtZSkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJc
bj09PSAiICsgbmFtZSArICIgPT09XG4iKTsKKyAgICB9OworCisgICAgZnVuY3Rpb24gcnVuQ29t
bWFuZChjb21tYW5kKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZChj
b21tYW5kLmNvbW1hbmQsIGNvbW1hbmQucGFyYW1ldGVycywgZnVuY3Rpb24obWVzc2FnZU9iamVj
dCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jaGVja0ZvckVycm9yKG1lc3NhZ2VPYmpl
Y3QpOworCisgICAgICAgICAgICBpZiAoY29tbWFuZC5uYW1lKQorICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJQQVNTIik7CisKKyAgICAgICAgICAgIGlmIChjb21tYW5kLmNhbGxi
YWNrKQorICAgICAgICAgICAgICAgIGNvbW1hbmQuY2FsbGJhY2sobWVzc2FnZU9iamVjdC5yZXN1
bHQpOworICAgICAgICB9KTsKKyAgICB9OworCisgICAgZnVuY3Rpb24gYXNzZXJ0KG5hbWUsIGFj
dHVhbCwgZXhwZWN0ZWQpCisgICAgeworICAgICAgICBpZiAoZXhwZWN0ZWQgPT09IGFjdHVhbCkK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiAiICsgbmFtZSArICIuIik7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiAiICsgbmFt
ZSArICIuIEV4cGVjdGVkICIgKyBleHBlY3RlZCArICIgYnV0IGdvdCAiICsgYWN0dWFsKTsKKyAg
ICB9OworCit9OworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIs
IGZ1bmN0aW9uKCkKK3sKKyAgICBydW5UZXN0KCk7Cit9LCBmYWxzZSk7CisKKzwvc2NyaXB0Pgor
PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIAorICAgICNpc29sYXRpbmcgeworICAgICAg
ICBpc29sYXRpb246IGlzb2xhdGU7CisgICAgfQorCisgICAgI2JsZW5kaW5nIHsKKyAgICAgICAg
bWl4LWJsZW5kLW1vZGU6IGRpZmZlcmVuY2U7CisgICAgfQorCisgICAgI2NvbXBvc2l0ZWQgewor
ICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwKTsKKyAgICB9CisKKzwvc3R5
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJpc29sYXRpbmciPgorICAgICAgICA8
ZGl2IGlkPSJibGVuZGluZyI+CisgICAgICAgICAgICA8ZGl2IGlkPSJjb21wb3NpdGVkIj48L2Rp
dj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbGF5ZXJzL2xheWVycy1jb21wb3NpdGluZy1yZWFz
b25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9sYXllcnMvbGF5ZXJzLWNv
bXBvc2l0aW5nLXJlYXNvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2ZmI2NDQ4MGQ0ZDEw
NDdiYzNmNWIzYjM3OWI4YTlkNjZmOWE1M2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvbGF5ZXJzL2xheWVycy1jb21wb3NpdGluZy1yZWFzb25zLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE4IEBACisKKz09PSBFbmFibGUgdGhlIExheWVyVHJlZSBhZ2VudCA9PT0K
KworUEFTUworCis9PT0gR2V0IHRoZSBEb2N1bWVudCA9PT0KKworUEFTUworCis9PT0gR2V0IHRo
ZSBsYXllciB0cmVlID09PQorCitQQVNTCisKKz09PSBDaGVjayBsYXllcnMnIHJlYXNvbnMgZm9y
IGNvbXBvc2l0aW5nID09PQorCitQQVNTOiA8ZGl2IGlkPSJvcGFjaXR5LWNvbnRhaW5lciI+IGlz
IGNvbXBvc2l0ZWQgZHVlIHRvIGhhdmluZyBhbiBvcGFjaXR5IHN0eWxlIGFuZCBhIGNvbXBvc2l0
ZWQgY2hpbGQuCitQQVNTOiA8ZGl2IGlkPSJjaGlsZCI+IGlzIGNvbXBvc2l0ZWQgZHVlIHRvIGhh
dmluZyAiYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuIiBhbmQgYSAzRCB0cmFuc2Zvcm0uCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9sYXllcnMvbGF5ZXJzLWNvbXBvc2l0
aW5nLXJlYXNvbnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9sYXllcnMvbGF5ZXJzLWNv
bXBvc2l0aW5nLXJlYXNvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTM4MDMyZDVjMTlkZTRlZGNjOWZj
Mzk0Y2JkYzk4NzJhOGYwNTczCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2xheWVycy9sYXllcnMtY29tcG9zaXRpbmctcmVhc29ucy5odG1sCkBAIC0wLDAgKzEsMTY2
IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCitmdW5jdGlvbiB0ZXN0
KCkKK3sKKworICAgIHZhciBub2RlcyA9IFtdOworIAorICAgIEluc3BlY3RvclRlc3QuZXZlbnRI
YW5kbGVyWyJET00uc2V0Q2hpbGROb2RlcyJdID0gc2V0Q2hpbGROb2RlczsKKworICAgIGVuYWJs
ZUxheWVyVHJlZUFnZW50KCk7CisgICAgCisgICAgZnVuY3Rpb24gZW5hYmxlTGF5ZXJUcmVlQWdl
bnQocmVzdWx0KQorICAgIHsKKyAgICAgICAgc3RlcCh7CisgICAgICAgICAgICBuYW1lOiAiRW5h
YmxlIHRoZSBMYXllclRyZWUgYWdlbnQiLAorICAgICAgICAgICAgY29tbWFuZDogIkxheWVyVHJl
ZS5lbmFibGUiLAorICAgICAgICAgICAgcGFyYW1ldGVyczoge30sCisgICAgICAgICAgICBjYWxs
YmFjazogZ2V0RG9jdW1lbnQKKyAgICAgICAgfSk7CisgICAgfTsKKworICAgIGZ1bmN0aW9uIGdl
dERvY3VtZW50KCkKKyAgICB7CisgICAgICAgIC8vIFdlIG11c3QgZmlyc3QgZ2V0IHRoZSBkb2N1
bWVudCBzbyB0aGF0IGxhdGVyIG9uIHdlIG1heSBnZXQgc2Vuc2libGUgbm9kZUlkcy4KKyAgICAg
ICAgc3RlcCh7CisgICAgICAgICAgICBuYW1lOiAiR2V0IHRoZSBEb2N1bWVudCIsCisgICAgICAg
ICAgICBjb21tYW5kOiAiRE9NLmdldERvY3VtZW50IiwKKyAgICAgICAgICAgIHBhcmFtZXRlcnM6
IHt9LAorICAgICAgICAgICAgY2FsbGJhY2s6IGdldExheWVyVHJlZQorICAgICAgICB9KTsKKyAg
ICB9OworCisgICAgZnVuY3Rpb24gZ2V0TGF5ZXJUcmVlKHJlc3VsdCkKKyAgICB7CisgICAgICAg
IHN0ZXAoeworICAgICAgICAgICAgbmFtZTogIkdldCB0aGUgbGF5ZXIgdHJlZSIsCisgICAgICAg
ICAgICBjb21tYW5kOiAiTGF5ZXJUcmVlLmxheWVyc0Zvck5vZGUiLAorICAgICAgICAgICAgcGFy
YW1ldGVyczogeyJub2RlSWQiOiByZXN1bHQucm9vdC5ub2RlSWR9LAorICAgICAgICAgICAgY2Fs
bGJhY2s6IGdvdExheWVyVHJlZQorICAgICAgICB9KTsKKyAgICB9OworCisgICAgZnVuY3Rpb24g
Z290TGF5ZXJUcmVlKHJlc3VsdCkKKyAgICB7CisgICAgICAgIGxvZ1Rlc3ROYW1lKCJDaGVjayBs
YXllcnMnIHJlYXNvbnMgZm9yIGNvbXBvc2l0aW5nIikKKyAgICAgICAgCisgICAgICAgIHZhciBs
YXllcnMgPSByZXN1bHQubGF5ZXJzOworCisgICAgICAgIHZhciBub2Rlc0J5SWQgPSB7fTsKKyAg
ICAgICAgbm9kZXMuZm9yRWFjaChmdW5jdGlvbihub2RlKSB7CisgICAgICAgICAgICBub2Rlc0J5
SWRbbm9kZS5ub2RlSWRdID0gbm9kZTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgdmFyIGNvdW50
ID0gMDsKKyAgICAgICAgCisgICAgICAgIGZ1bmN0aW9uIGhhc0lkKG5vZGUsIGlkKSB7CisgICAg
ICAgICAgICByZXR1cm4gbm9kZSAmJiBub2RlLmF0dHJpYnV0ZXMgJiYgbm9kZS5hdHRyaWJ1dGVz
WzBdID09PSAiaWQiICYmIG5vZGUuYXR0cmlidXRlc1sxXSA9PT0gaWQ7CisgICAgICAgIH0KKyAg
ICAgICAgCisgICAgICAgIGZ1bmN0aW9uIGR1bXBSZWFzb25zKGxheWVyLCBjb21wb3NpdGluZ1Jl
YXNvbnMpIHsKKyAgICAgICAgICAgIHZhciBub2RlID0gbm9kZXNCeUlkW2xheWVyLm5vZGVJZF07
CisKKyAgICAgICAgICAgIGlmIChoYXNJZChub2RlLCAib3BhY2l0eS1jb250YWluZXIiKSkgewor
ICAgICAgICAgICAgICAgIGFzc2VydCgKKyAgICAgICAgICAgICAgICAgICAgIjxkaXYgaWQ9XCJv
cGFjaXR5LWNvbnRhaW5lclwiPiBpcyBjb21wb3NpdGVkIGR1ZSB0byBoYXZpbmcgYW4gb3BhY2l0
eSBzdHlsZSBhbmQgYSBjb21wb3NpdGVkIGNoaWxkIiwKKyAgICAgICAgICAgICAgICAgICAgY29t
cG9zaXRpbmdSZWFzb25zLm9wYWNpdHlXaXRoQ29tcG9zaXRlZERlc2NlbmRhbnRzLAorICAgICAg
ICAgICAgICAgICAgICB0cnVlKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaGFzSWQobm9kZSwg
ImNoaWxkIikpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnQoCisgICAgICAgICAgICAgICAgICAg
ICI8ZGl2IGlkPVwiY2hpbGRcIj4gaXMgY29tcG9zaXRlZCBkdWUgdG8gaGF2aW5nIFwiYmFja2Zh
Y2UtdmlzaWJpbGl0eTogaGlkZGVuXCIgYW5kIGEgM0QgdHJhbnNmb3JtIiwKKyAgICAgICAgICAg
ICAgICAgICAgY29tcG9zaXRpbmdSZWFzb25zLnRyYW5zZm9ybTNEICYmIGNvbXBvc2l0aW5nUmVh
c29ucy5iYWNrZmFjZVZpc2liaWxpdHlIaWRkZW4sCisgICAgICAgICAgICAgICAgICAgIHRydWUp
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoKytjb3VudCA9PT0gbGF5ZXJzLmxl
bmd0aCkKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAg
ICAgICB9OworCisgICAgICAgIGxheWVycy5mb3JFYWNoKGZ1bmN0aW9uIChsYXllcikgeworICAg
ICAgICAgICAgcnVuQ29tbWFuZCh7CisgICAgICAgICAgICAgICAgY29tbWFuZDogIkxheWVyVHJl
ZS5yZWFzb25zRm9yQ29tcG9zaXRpbmdMYXllciIsCisgICAgICAgICAgICAgICAgcGFyYW1ldGVy
czogeyJsYXllcklkIjogbGF5ZXIubGF5ZXJJZH0sCisgICAgICAgICAgICAgICAgY2FsbGJhY2s6
IGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBkdW1wUmVhc29ucyhsYXll
ciwgcmVzdWx0LmNvbXBvc2l0aW5nUmVhc29ucyk7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH07CisKKyAgICBmdW5jdGlvbiBzZXRDaGlsZE5v
ZGVzIChtZXNzYWdlT2JqZWN0KSB7CisgICAgICAgIG1lc3NhZ2VPYmplY3QucGFyYW1zLm5vZGVz
LmZvckVhY2goZnVuY3Rpb24gKG5vZGUpIHsKKyAgICAgICAgICAgIG5vZGVzLnB1c2gobm9kZSk7
CisgICAgICAgIH0pCisgICAgfTsKKworICAgIGZ1bmN0aW9uIHN0ZXAodGVzdCkKKyAgICB7Cisg
ICAgICAgIGlmICh0ZXN0LmNhbGxiYWNrKQorICAgICAgICAgICAgbG9nVGVzdE5hbWUodGVzdC5u
YW1lKTsKKyAgICAgICAgcnVuQ29tbWFuZCh0ZXN0KTsKKyAgICB9OworCisgICAgZnVuY3Rpb24g
bG9nVGVzdE5hbWUobmFtZSkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJcbj09
PSAiICsgbmFtZSArICIgPT09XG4iKTsKKyAgICB9OworCisgICAgZnVuY3Rpb24gcnVuQ29tbWFu
ZChjb21tYW5kKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZChjb21t
YW5kLmNvbW1hbmQsIGNvbW1hbmQucGFyYW1ldGVycywgZnVuY3Rpb24obWVzc2FnZU9iamVjdCkg
eworICAgICAgICAgICAgaWYgKG1lc3NhZ2VPYmplY3QuaGFzT3duUHJvcGVydHkoImVycm9yIikp
IHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDogIiArIG1lc3NhZ2VP
YmplY3QuZXJyb3IubWVzc2FnZSArICIgKCIgKyBtZXNzYWdlT2JqZWN0LmVycm9yLmNvZGUgKyAi
KSIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoY29t
bWFuZC5uYW1lKQorICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTIik7CisK
KyAgICAgICAgICAgIGlmIChjb21tYW5kLmNhbGxiYWNrKQorICAgICAgICAgICAgICAgIGNvbW1h
bmQuY2FsbGJhY2sobWVzc2FnZU9iamVjdC5yZXN1bHQpOworICAgICAgICB9KTsKKyAgICB9Owor
CisgICAgZnVuY3Rpb24gYXNzZXJ0KG5hbWUsIGFjdHVhbCwgZXhwZWN0ZWQpCisgICAgeworICAg
ICAgICBpZiAoZXhwZWN0ZWQgPT09IGFjdHVhbCkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJQQVNTOiAiICsgbmFtZSArICIuIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJGQUlMOiAiICsgbmFtZSArICIuIEV4cGVjdGVkICIgKyBleHBlY3Rl
ZCArICIgYnV0IGdvdCAiICsgYWN0dWFsKTsKKyAgICB9OworCit9OworCit3aW5kb3cuYWRkRXZl
bnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGZ1bmN0aW9uKCkKK3sKKyAgICBydW5UZXN0
KCk7Cit9LCBmYWxzZSk7CisKKzwvc2NyaXB0PgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAg
ICAgIAorICAgICNvcGFjaXR5LWNvbnRhaW5lciB7CisgICAgICAgIG9wYWNpdHk6IDAuNTsKKyAg
ICB9CisKKyAgICAjY2hpbGQgeworICAgICAgICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6
IGhpZGRlbjsKKyAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7CisgICAg
fQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisKKyAgICA8ZGl2IGlkPSJmaXhlZCI+PC9k
aXY+CisKKyAgICA8ZGl2IGlkPSJvcGFjaXR5LWNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgaWQ9
ImNoaWxkIj48L2Rpdj4KKyAgICA8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2xheWVycy9sYXllcnMtZm9yLW5vZGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2xheWVycy9sYXllcnMtZm9yLW5vZGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjM5OWJhY2EyYzk5OTYzYjkxOWMwOGVmNWFhNGI5MWE4YWFhMjE0
OTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbGF5ZXJzL2xheWVy
cy1mb3Itbm9kZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNjcgQEAKKworPT09IEVuYWJsZSB0
aGUgTGF5ZXJUcmVlIGFnZW50ID09PQorCitQQVNTCisKKz09PSBHZXQgdGhlIERvY3VtZW50ID09
PQorCitQQVNTCisKKz09PSBHZXQgdGhlIGluaXRpYWwgbGF5ZXIgdHJlZSA9PT0KKworUEFTUwor
CitbCisgICAgeworICAgICAgICAibGF5ZXJJZCI6ICJzdHJpbmciLAorICAgICAgICAibm9kZUlk
IjogIm51bWJlciIsCisgICAgICAgICJib3VuZHMiOiB7CisgICAgICAgICAgICAieCI6IDAsCisg
ICAgICAgICAgICAieSI6IDAsCisgICAgICAgICAgICAid2lkdGgiOiAibnVtYmVyIiwKKyAgICAg
ICAgICAgICJoZWlnaHQiOiAibnVtYmVyIgorICAgICAgICB9LAorICAgICAgICAibWVtb3J5Ijog
Im51bWJlciIsCisgICAgICAgICJjb21wb3NpdGVkQm91bmRzIjogeworICAgICAgICAgICAgIngi
OiAwLAorICAgICAgICAgICAgInkiOiAwLAorICAgICAgICAgICAgIndpZHRoIjogIm51bWJlciIs
CisgICAgICAgICAgICAiaGVpZ2h0IjogIm51bWJlciIKKyAgICAgICAgfSwKKyAgICAgICAgInBh
aW50Q291bnQiOiAibnVtYmVyIgorICAgIH0sCisgICAgeworICAgICAgICAibGF5ZXJJZCI6ICJz
dHJpbmciLAorICAgICAgICAibm9kZUlkIjogIm51bWJlciIsCisgICAgICAgICJib3VuZHMiOiB7
CisgICAgICAgICAgICAieCI6IDI1LAorICAgICAgICAgICAgInkiOiAyNSwKKyAgICAgICAgICAg
ICJ3aWR0aCI6IDUwLAorICAgICAgICAgICAgImhlaWdodCI6IDUwCisgICAgICAgIH0sCisgICAg
ICAgICJtZW1vcnkiOiAibnVtYmVyIiwKKyAgICAgICAgImNvbXBvc2l0ZWRCb3VuZHMiOiB7Cisg
ICAgICAgICAgICAieCI6IDAsCisgICAgICAgICAgICAieSI6IDAsCisgICAgICAgICAgICAid2lk
dGgiOiA1MCwKKyAgICAgICAgICAgICJoZWlnaHQiOiA1MAorICAgICAgICB9LAorICAgICAgICAi
cGFpbnRDb3VudCI6ICJudW1iZXIiCisgICAgfSwKKyAgICB7CisgICAgICAgICJsYXllcklkIjog
InN0cmluZyIsCisgICAgICAgICJub2RlSWQiOiAibnVtYmVyIiwKKyAgICAgICAgImJvdW5kcyI6
IHsKKyAgICAgICAgICAgICJ4IjogNTAsCisgICAgICAgICAgICAieSI6IDUwLAorICAgICAgICAg
ICAgIndpZHRoIjogNTAsCisgICAgICAgICAgICAiaGVpZ2h0IjogNTAKKyAgICAgICAgfSwKKyAg
ICAgICAgIm1lbW9yeSI6ICJudW1iZXIiLAorICAgICAgICAiY29tcG9zaXRlZEJvdW5kcyI6IHsK
KyAgICAgICAgICAgICJ4IjogMCwKKyAgICAgICAgICAgICJ5IjogMCwKKyAgICAgICAgICAgICJ3
aWR0aCI6IDUwLAorICAgICAgICAgICAgImhlaWdodCI6IDUwCisgICAgICAgIH0sCisgICAgICAg
ICJwYWludENvdW50IjogIm51bWJlciIKKyAgICB9LAorICAgIHsKKyAgICAgICAgImxheWVySWQi
OiAic3RyaW5nIiwKKyAgICAgICAgIm5vZGVJZCI6ICJudW1iZXIiLAorICAgICAgICAiYm91bmRz
IjogeworICAgICAgICAgICAgIngiOiAyMDAsCisgICAgICAgICAgICAieSI6IDAsCisgICAgICAg
ICAgICAid2lkdGgiOiAxMDAsCisgICAgICAgICAgICAiaGVpZ2h0IjogMTAwCisgICAgICAgIH0s
CisgICAgICAgICJtZW1vcnkiOiAibnVtYmVyIiwKKyAgICAgICAgImNvbXBvc2l0ZWRCb3VuZHMi
OiB7CisgICAgICAgICAgICAieCI6IDAsCisgICAgICAgICAgICAieSI6IDAsCisgICAgICAgICAg
ICAid2lkdGgiOiAxMDAsCisgICAgICAgICAgICAiaGVpZ2h0IjogMTAwCisgICAgICAgIH0sCisg
ICAgICAgICJwYWludENvdW50IjogIm51bWJlciIKKyAgICB9LAorICAgIHsKKyAgICAgICAgImxh
eWVySWQiOiAic3RyaW5nIiwKKyAgICAgICAgIm5vZGVJZCI6ICJudW1iZXIiLAorICAgICAgICAi
Ym91bmRzIjogeworICAgICAgICAgICAgIngiOiAyMjUsCisgICAgICAgICAgICAieSI6IDI1LAor
ICAgICAgICAgICAgIndpZHRoIjogNTAsCisgICAgICAgICAgICAiaGVpZ2h0IjogNTAKKyAgICAg
ICAgfSwKKyAgICAgICAgIm1lbW9yeSI6ICJudW1iZXIiLAorICAgICAgICAiY29tcG9zaXRlZEJv
dW5kcyI6IHsKKyAgICAgICAgICAgICJ4IjogMCwKKyAgICAgICAgICAgICJ5IjogMCwKKyAgICAg
ICAgICAgICJ3aWR0aCI6IDUwLAorICAgICAgICAgICAgImhlaWdodCI6IDUwCisgICAgICAgIH0s
CisgICAgICAgICJwYWludENvdW50IjogIm51bWJlciIKKyAgICB9LAorICAgIHsKKyAgICAgICAg
ImxheWVySWQiOiAic3RyaW5nIiwKKyAgICAgICAgIm5vZGVJZCI6ICJudW1iZXIiLAorICAgICAg
ICAiYm91bmRzIjogeworICAgICAgICAgICAgIngiOiAwLAorICAgICAgICAgICAgInkiOiAwLAor
ICAgICAgICAgICAgIndpZHRoIjogIm51bWJlciIsCisgICAgICAgICAgICAiaGVpZ2h0IjogIm51
bWJlciIKKyAgICAgICAgfSwKKyAgICAgICAgIm1lbW9yeSI6ICJudW1iZXIiLAorICAgICAgICAi
Y29tcG9zaXRlZEJvdW5kcyI6IHsKKyAgICAgICAgICAgICJ4IjogMCwKKyAgICAgICAgICAgICJ5
IjogMCwKKyAgICAgICAgICAgICJ3aWR0aCI6ICJudW1iZXIiLAorICAgICAgICAgICAgImhlaWdo
dCI6ICJudW1iZXIiCisgICAgICAgIH0sCisgICAgICAgICJwYWludENvdW50IjogIm51bWJlciIK
KyAgICB9CitdCisKKz09PSBNZXNzYWdlIHRoZSBwYWdlIHRvIGFkZCBhIG5ldyBjb21wb3NpdGVk
IGxheWVyID09PQorCitQQVNTCisKKz09PSBHZXQgdGhlIG1vZGlmaWVkIGxheWVyIHRyZWUgPT09
CisKK1BBU1MKKworWworICAgIHsKKyAgICAgICAgImxheWVySWQiOiAic3RyaW5nIiwKKyAgICAg
ICAgIm5vZGVJZCI6ICJudW1iZXIiLAorICAgICAgICAiYm91bmRzIjogeworICAgICAgICAgICAg
IngiOiAwLAorICAgICAgICAgICAgInkiOiAwLAorICAgICAgICAgICAgIndpZHRoIjogIm51bWJl
ciIsCisgICAgICAgICAgICAiaGVpZ2h0IjogIm51bWJlciIKKyAgICAgICAgfSwKKyAgICAgICAg
Im1lbW9yeSI6ICJudW1iZXIiLAorICAgICAgICAiY29tcG9zaXRlZEJvdW5kcyI6IHsKKyAgICAg
ICAgICAgICJ4IjogMCwKKyAgICAgICAgICAgICJ5IjogMCwKKyAgICAgICAgICAgICJ3aWR0aCI6
ICJudW1iZXIiLAorICAgICAgICAgICAgImhlaWdodCI6ICJudW1iZXIiCisgICAgICAgIH0sCisg
ICAgICAgICJwYWludENvdW50IjogIm51bWJlciIKKyAgICB9LAorICAgIHsKKyAgICAgICAgImxh
eWVySWQiOiAic3RyaW5nIiwKKyAgICAgICAgIm5vZGVJZCI6ICJudW1iZXIiLAorICAgICAgICAi
Ym91bmRzIjogeworICAgICAgICAgICAgIngiOiAyNSwKKyAgICAgICAgICAgICJ5IjogMjUsCisg
ICAgICAgICAgICAid2lkdGgiOiA1MCwKKyAgICAgICAgICAgICJoZWlnaHQiOiA1MAorICAgICAg
ICB9LAorICAgICAgICAibWVtb3J5IjogIm51bWJlciIsCisgICAgICAgICJjb21wb3NpdGVkQm91
bmRzIjogeworICAgICAgICAgICAgIngiOiAwLAorICAgICAgICAgICAgInkiOiAwLAorICAgICAg
ICAgICAgIndpZHRoIjogNTAsCisgICAgICAgICAgICAiaGVpZ2h0IjogNTAKKyAgICAgICAgfSwK
KyAgICAgICAgInBhaW50Q291bnQiOiAibnVtYmVyIgorICAgIH0sCisgICAgeworICAgICAgICAi
bGF5ZXJJZCI6ICJzdHJpbmciLAorICAgICAgICAibm9kZUlkIjogIm51bWJlciIsCisgICAgICAg
ICJib3VuZHMiOiB7CisgICAgICAgICAgICAieCI6IDUwLAorICAgICAgICAgICAgInkiOiA1MCwK
KyAgICAgICAgICAgICJ3aWR0aCI6IDUwLAorICAgICAgICAgICAgImhlaWdodCI6IDUwCisgICAg
ICAgIH0sCisgICAgICAgICJtZW1vcnkiOiAibnVtYmVyIiwKKyAgICAgICAgImNvbXBvc2l0ZWRC
b3VuZHMiOiB7CisgICAgICAgICAgICAieCI6IDAsCisgICAgICAgICAgICAieSI6IDAsCisgICAg
ICAgICAgICAid2lkdGgiOiA1MCwKKyAgICAgICAgICAgICJoZWlnaHQiOiA1MAorICAgICAgICB9
LAorICAgICAgICAicGFpbnRDb3VudCI6ICJudW1iZXIiCisgICAgfSwKKyAgICB7CisgICAgICAg
ICJsYXllcklkIjogInN0cmluZyIsCisgICAgICAgICJub2RlSWQiOiAibnVtYmVyIiwKKyAgICAg
ICAgImJvdW5kcyI6IHsKKyAgICAgICAgICAgICJ4IjogMjAwLAorICAgICAgICAgICAgInkiOiAw
LAorICAgICAgICAgICAgIndpZHRoIjogMTAwLAorICAgICAgICAgICAgImhlaWdodCI6IDEwMAor
ICAgICAgICB9LAorICAgICAgICAibWVtb3J5IjogIm51bWJlciIsCisgICAgICAgICJjb21wb3Np
dGVkQm91bmRzIjogeworICAgICAgICAgICAgIngiOiAwLAorICAgICAgICAgICAgInkiOiAwLAor
ICAgICAgICAgICAgIndpZHRoIjogMTAwLAorICAgICAgICAgICAgImhlaWdodCI6IDEwMAorICAg
ICAgICB9LAorICAgICAgICAicGFpbnRDb3VudCI6ICJudW1iZXIiCisgICAgfSwKKyAgICB7Cisg
ICAgICAgICJsYXllcklkIjogInN0cmluZyIsCisgICAgICAgICJub2RlSWQiOiAibnVtYmVyIiwK
KyAgICAgICAgImJvdW5kcyI6IHsKKyAgICAgICAgICAgICJ4IjogMjI1LAorICAgICAgICAgICAg
InkiOiAyNSwKKyAgICAgICAgICAgICJ3aWR0aCI6IDUwLAorICAgICAgICAgICAgImhlaWdodCI6
IDUwCisgICAgICAgIH0sCisgICAgICAgICJtZW1vcnkiOiAibnVtYmVyIiwKKyAgICAgICAgImNv
bXBvc2l0ZWRCb3VuZHMiOiB7CisgICAgICAgICAgICAieCI6IDAsCisgICAgICAgICAgICAieSI6
IDAsCisgICAgICAgICAgICAid2lkdGgiOiA1MCwKKyAgICAgICAgICAgICJoZWlnaHQiOiA1MAor
ICAgICAgICB9LAorICAgICAgICAicGFpbnRDb3VudCI6ICJudW1iZXIiCisgICAgfSwKKyAgICB7
CisgICAgICAgICJsYXllcklkIjogInN0cmluZyIsCisgICAgICAgICJub2RlSWQiOiAibnVtYmVy
IiwKKyAgICAgICAgImJvdW5kcyI6IHsKKyAgICAgICAgICAgICJ4IjogMCwKKyAgICAgICAgICAg
ICJ5IjogMCwKKyAgICAgICAgICAgICJ3aWR0aCI6ICJudW1iZXIiLAorICAgICAgICAgICAgImhl
aWdodCI6ICJudW1iZXIiCisgICAgICAgIH0sCisgICAgICAgICJtZW1vcnkiOiAibnVtYmVyIiwK
KyAgICAgICAgImNvbXBvc2l0ZWRCb3VuZHMiOiB7CisgICAgICAgICAgICAieCI6IDAsCisgICAg
ICAgICAgICAieSI6IDAsCisgICAgICAgICAgICAid2lkdGgiOiAibnVtYmVyIiwKKyAgICAgICAg
ICAgICJoZWlnaHQiOiAibnVtYmVyIgorICAgICAgICB9LAorICAgICAgICAicGFpbnRDb3VudCI6
ICJudW1iZXIiCisgICAgfSwKKyAgICB7CisgICAgICAgICJsYXllcklkIjogInN0cmluZyIsCisg
ICAgICAgICJub2RlSWQiOiAibnVtYmVyIiwKKyAgICAgICAgImJvdW5kcyI6IHsKKyAgICAgICAg
ICAgICJ4IjogMjUsCisgICAgICAgICAgICAieSI6IDI1LAorICAgICAgICAgICAgIndpZHRoIjog
NTAsCisgICAgICAgICAgICAiaGVpZ2h0IjogNTAKKyAgICAgICAgfSwKKyAgICAgICAgIm1lbW9y
eSI6ICJudW1iZXIiLAorICAgICAgICAiY29tcG9zaXRlZEJvdW5kcyI6IHsKKyAgICAgICAgICAg
ICJ4IjogMCwKKyAgICAgICAgICAgICJ5IjogMCwKKyAgICAgICAgICAgICJ3aWR0aCI6IDUwLAor
ICAgICAgICAgICAgImhlaWdodCI6IDUwCisgICAgICAgIH0sCisgICAgICAgICJwYWludENvdW50
IjogIm51bWJlciIKKyAgICB9CitdCisKKz09PSBHZXQgYXR0cmlidXRlcyBmb3IgdGhlIG5ld2x5
IGluc2VydGVkIG5vZGUgPT09CisKK1BBU1MKKworPT09IFRlc3QgY29tcGxldGUsIGFsbCBleHBl
Y3RlZCBjb25kaXRpb25zIG1ldCA9PT0KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2xheWVycy9sYXllcnMtZm9yLW5vZGUuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9s
YXllcnMvbGF5ZXJzLWZvci1ub2RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2ZkNjU1ZGJkNGEyM2Y4MGQ5
MDI2YmZiMjdlZTVjOGQzMzJhZDRkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9sYXllcnMvbGF5ZXJzLWZvci1ub2RlLmh0bWwKQEAgLTAsMCArMSwyMzYgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9o
dHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK2Z1bmN0aW9uIGFkZENvbXBvc2l0
ZWRMYXllcigpCit7CisgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKKyAgICBlbGVtZW50LmNsYXNzTmFtZSA9ICJjb21wb3NpdGVkIjsKKyAgICBlbGVtZW50
LmlkID0gImxhc3QtZWxlbWVudCI7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVt
ZW50KTsKK307CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHZhciBkb2N1bWVudE5vZGU7Cisg
ICAgdmFyIGluaXRpYWxMYXllcnM7CisgICAgdmFyIGV2ZW50c0NvdW50ID0gMDsKKworICAgIElu
c3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJMYXllclRyZWUubGF5ZXJUcmVlRGlkQ2hhbmdlIl0g
PSBmdW5jdGlvbiAobWVzc2FnZU9iamVjdCkgeworICAgICAgICBldmVudHNDb3VudCsrOworICAg
IH07CisKKyAgICBlbmFibGVMYXllclRyZWVBZ2VudCgpOworCisgICAgZnVuY3Rpb24gZW5hYmxl
TGF5ZXJUcmVlQWdlbnQocmVzdWx0KQorICAgIHsKKyAgICAgICAgc3RlcCh7CisgICAgICAgICAg
ICBuYW1lOiAiRW5hYmxlIHRoZSBMYXllclRyZWUgYWdlbnQiLAorICAgICAgICAgICAgY29tbWFu
ZDogIkxheWVyVHJlZS5lbmFibGUiLAorICAgICAgICAgICAgcGFyYW1ldGVyczoge30sCisgICAg
ICAgICAgICBjYWxsYmFjazogZ2V0RG9jdW1lbnQKKyAgICAgICAgfSk7CisgICAgfTsKKyAgICAK
KyAgICBmdW5jdGlvbiBnZXREb2N1bWVudChyZXN1bHQpCisgICAgeworICAgICAgICBzdGVwKHsK
KyAgICAgICAgICAgIG5hbWU6ICJHZXQgdGhlIERvY3VtZW50IiwKKyAgICAgICAgICAgIGNvbW1h
bmQ6ICJET00uZ2V0RG9jdW1lbnQiLAorICAgICAgICAgICAgcGFyYW1ldGVyczoge30sCisgICAg
ICAgICAgICBjYWxsYmFjazogZ2V0SW5pdGlhbExheWVyVHJlZQorICAgICAgICB9KTsKKyAgICB9
OworICAgIAorICAgIGZ1bmN0aW9uIGdldEluaXRpYWxMYXllclRyZWUocmVzdWx0KQorICAgIHsK
KyAgICAgICAgZG9jdW1lbnROb2RlID0gcmVzdWx0LnJvb3Q7CisgICAgICAgIHN0ZXAoeworICAg
ICAgICAgICAgbmFtZTogIkdldCB0aGUgaW5pdGlhbCBsYXllciB0cmVlIiwKKyAgICAgICAgICAg
IGNvbW1hbmQ6ICJMYXllclRyZWUubGF5ZXJzRm9yTm9kZSIsCisgICAgICAgICAgICBwYXJhbWV0
ZXJzOiB7Im5vZGVJZCI6IGRvY3VtZW50Tm9kZS5ub2RlSWR9LAorICAgICAgICAgICAgY2FsbGJh
Y2s6IGdvdEluaXRpYWxMYXllclRyZWUKKyAgICAgICAgfSk7CisgICAgfTsKKworICAgIGZ1bmN0
aW9uIGdvdEluaXRpYWxMYXllclRyZWUocmVzdWx0KQorICAgIHsKKyAgICAgICAgaW5pdGlhbExh
eWVycyA9IHJlc3VsdC5sYXllcnM7CisKKyAgICAgICAgZHVtcExheWVycyhpbml0aWFsTGF5ZXJz
KTsKKworICAgICAgICBzdGVwKHsKKyAgICAgICAgICAgIG5hbWU6ICJNZXNzYWdlIHRoZSBwYWdl
IHRvIGFkZCBhIG5ldyBjb21wb3NpdGVkIGxheWVyIiwKKyAgICAgICAgICAgIGNvbW1hbmQ6ICJS
dW50aW1lLmV2YWx1YXRlIiwKKyAgICAgICAgICAgIHBhcmFtZXRlcnM6IHsiZXhwcmVzc2lvbiI6
ICJhZGRDb21wb3NpdGVkTGF5ZXIoKSJ9LAorICAgICAgICAgICAgY2FsbGJhY2s6IGdldE1vZGlm
aWVkTGF5ZXJUcmVlCisgICAgICAgIH0pOworICAgIH07CisKKyAgICBmdW5jdGlvbiBnZXRNb2Rp
ZmllZExheWVyVHJlZShyZXN1bHQpCisgICAgeworICAgICAgICBzdGVwKHsKKyAgICAgICAgICAg
IG5hbWU6ICJHZXQgdGhlIG1vZGlmaWVkIGxheWVyIHRyZWUiLAorICAgICAgICAgICAgY29tbWFu
ZDogIkxheWVyVHJlZS5sYXllcnNGb3JOb2RlIiwKKyAgICAgICAgICAgIHBhcmFtZXRlcnM6IHsi
bm9kZUlkIjogZG9jdW1lbnROb2RlLm5vZGVJZH0sCisgICAgICAgICAgICBjYWxsYmFjazogZ290
TW9kaWZpZWRMYXllclRyZWUKKyAgICAgICAgfSk7CisgICAgfTsKKworICAgIHZhciBsYXllckNv
dW50ID0gMDsKKworICAgIGZ1bmN0aW9uIGdvdE1vZGlmaWVkTGF5ZXJUcmVlKHJlc3VsdCkKKyAg
ICB7CisgICAgICAgIGR1bXBMYXllcnMocmVzdWx0LmxheWVycyk7CisKKyAgICAgICAgdmFyIG11
dGF0aW9ucyA9IGxheWVyTXV0YXRpb25zKGluaXRpYWxMYXllcnMsIHJlc3VsdC5sYXllcnMpOwor
ICAgICAgICB2YXIgbmV3TGF5ZXIgPSBtdXRhdGlvbnMuYWRkaXRpb25zWzBdOworCisgICAgICAg
IHN0ZXAoeworICAgICAgICAgICAgbmFtZTogIkdldCBhdHRyaWJ1dGVzIGZvciB0aGUgbmV3bHkg
aW5zZXJ0ZWQgbm9kZSIsCisgICAgICAgICAgICBjb21tYW5kOiAiRE9NLmdldEF0dHJpYnV0ZXMi
LAorICAgICAgICAgICAgcGFyYW1ldGVyczogeyJub2RlSWQiOiBuZXdMYXllci5ub2RlSWR9LAor
ICAgICAgICAgICAgY2FsbGJhY2s6IGdvdE5vZGVBdHRyaWJ1dGVzCisgICAgICAgIH0pOworICAg
IH07CisKKyAgICBmdW5jdGlvbiBnb3ROb2RlQXR0cmlidXRlcyhyZXN1bHQpCisgICAgeworICAg
ICAgICB2YXIgYXR0cmlidXRlcyA9IGF0dHJpYnV0ZXNEaWN0aW9uYXJ5RnJvbUFycmF5KHJlc3Vs
dC5hdHRyaWJ1dGVzKTsKKyAgICAgICAgaWYgKGF0dHJpYnV0ZXMuaWQgIT09ICJsYXN0LWVsZW1l
bnQiKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6IERpZCBub3Qgb2J0YWlu
IHRoZSBleHBlY3RlZCBlbGVtZW50IGZvciB0aGUgbGFzdCBpbnNlcnRlZCBsYXllci4iKTsKKwor
ICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgfTsKKworICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3Qo
KQorICAgIHsKKyAgICAgICAgaWYgKCFldmVudHNDb3VudCkKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJGQUlMOiBEaWQgbm90IHJlY2VpdmUgbGF5ZXJUcmVlRGlkQ2hhbmdlIGV2ZW50
cy4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlxuPT09
IFRlc3QgY29tcGxldGUsIGFsbCBleHBlY3RlZCBjb25kaXRpb25zIG1ldCA9PT0iKTsKKworICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH07CisKKyAgICBmdW5jdGlv
biBsYXllck11dGF0aW9ucyhvbGRMYXllcnMsIG5ld0xheWVycykKKyAgICB7CisgICAgICAgIGZ1
bmN0aW9uIGxheWVySWRNYXAobGF5ZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBsYXllci5sYXll
cklkOworICAgICAgICB9CisKKyAgICAgICAgdmFyIG9sZExheWVySWRzID0gb2xkTGF5ZXJzLm1h
cChsYXllcklkTWFwKTsKKyAgICAgICAgdmFyIG5ld0xheWVySWRzID0gbmV3TGF5ZXJzLm1hcChs
YXllcklkTWFwKTsKKworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgYWRkaXRpb25zOiBu
ZXdMYXllcnMuZmlsdGVyKGZ1bmN0aW9uIChsYXllcikgeworICAgICAgICAgICAgICAgIHJldHVy
biAob2xkTGF5ZXJJZHMuaW5kZXhPZihsYXllci5sYXllcklkKSA9PT0gLTEpOworICAgICAgICAg
ICAgfSksCisgICAgICAgICAgICByZW1vdmFsczogb2xkTGF5ZXJzLmZpbHRlcihmdW5jdGlvbiAo
bGF5ZXIpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gKG5ld0xheWVySWRzLmluZGV4T2YobGF5
ZXIubGF5ZXJJZCkgPT09IC0xKTsKKyAgICAgICAgICAgIH0pCisgICAgICAgIH07CisgICAgfTsK
KworICAgIGZ1bmN0aW9uIGF0dHJpYnV0ZXNEaWN0aW9uYXJ5RnJvbUFycmF5KGF0dHJpYnV0ZXMp
CisgICAgeworICAgICAgICB2YXIgZGljdGlvbmFyeSA9IHt9CisgICAgICAgIGZvciAodmFyIGkg
PSAwLCBjb3VudCA9IGF0dHJpYnV0ZXMubGVuZ3RoOyBpIDwgY291bnQ7IGkgKz0gMikgeworICAg
ICAgICAgICAgZGljdGlvbmFyeVthdHRyaWJ1dGVzW2ldXSA9IGF0dHJpYnV0ZXNbaSArIDFdOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiBkaWN0aW9uYXJ5OworICAgIH07CisKKyAgICBmdW5j
dGlvbiBkdW1wTGF5ZXJzKGxheWVycykKKyAgICB7CisgICAgICAgIGZ1bmN0aW9uIHJlcGxhY2Vy
KGtleSwgdmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChrZXkgPT09ICJsYXllcklk
IiB8fCBrZXkgPT09ICJub2RlSWQiIHx8IGtleSA9PT0gIm1lbW9yeSIgfHwga2V5ID09PSAicGFp
bnRDb3VudCIpCisgICAgICAgICAgICAgICAgcmV0dXJuIHR5cGVvZih2YWx1ZSk7CisKKyAgICAg
ICAgICAgIC8vIHNvbWUgdmFsdWVzIGRpZmZlciBiYXNlZCBvbiBwb3J0LCBidXQgdGhlIG9uZXMg
d2UgbW9zdAorICAgICAgICAgICAgLy8gY2FyZSBhYm91dCB3aWxsIGFsd2F5cyBiZSBsZXNzIG9y
IGVxdWFsIDEwMC4KKyAgICAgICAgICAgIGlmICgoa2V5ID09PSAid2lkdGgiIHx8IGtleSA9PT0g
ImhlaWdodCIpICYmIHZhbHVlID4gMTAwKSAKKyAgICAgICAgICAgICAgICByZXR1cm4gdHlwZW9m
KHZhbHVlKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuIHZhbHVlOworICAgICAg
ICB9OworICAgICAgICAKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlxuIiArIEpTT04uc3Ry
aW5naWZ5KGxheWVycywgcmVwbGFjZXIsICIgICAgIikpOworICAgIH07CisKKyAgICBmdW5jdGlv
biBzdGVwKHRlc3QpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiXG49PT0gIiAr
IHRlc3QubmFtZSArICIgPT09XG4iKQorICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5k
KHRlc3QuY29tbWFuZCwgdGVzdC5wYXJhbWV0ZXJzLCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7
CisgICAgICAgICAgICBpZiAobWVzc2FnZU9iamVjdC5oYXNPd25Qcm9wZXJ0eSgiZXJyb3IiKSkg
eworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiAiICsgbWVzc2FnZU9i
amVjdC5lcnJvci5tZXNzYWdlICsgIiAoIiArIG1lc3NhZ2VPYmplY3QuZXJyb3IuY29kZSArICIp
Iik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJQQVNTIik7CisgICAgICAgICAgICB0ZXN0LmNhbGxiYWNrKG1lc3NhZ2VPYmpl
Y3QucmVzdWx0KTsKKyAgICAgICAgfSk7CisgICAgfTsKKworICAgIGZ1bmN0aW9uIGFzc2VydChu
YW1lLCBhY3R1YWwsIGV4cGVjdGVkKQorICAgIHsKKyAgICAgICAgaWYgKGV4cGVjdGVkID09PSBh
Y3R1YWwpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogIiArIG5hbWUgKyAi
LiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDog
IiArIG5hbWUgKyAiLiBFeHBlY3RlZCAiICsgZXhwZWN0ZWQgKyAiIGJ1dCBnb3QgIiArIGFjdHVh
bCk7CisgICAgfTsKKworfTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRM
b2FkZWQiLCBmdW5jdGlvbiAoKSB7CisgICAgcnVuVGVzdCgpOworfSwgZmFsc2UpOworCis8L3Nj
cmlwdD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAKKyAgICBkaXYgeworICAgICAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIHRvcDogMDsKKyAgICAgICAgbGVmdDogMDsK
KyAgICB9CisgICAgICAKKyAgICAucmVndWxhciB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAg
ICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7Cisg
ICAgfQorCisgICAgLmNvbXBvc2l0ZWQgeworICAgICAgICB0b3A6IDI1cHg7CisgICAgICAgIGxl
ZnQ6IDI1cHg7CisgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICBoZWlnaHQ6IDUwcHg7Cisg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAgIC13ZWJraXQtdHJhbnNmb3Jt
OiB0cmFuc2xhdGVaKDApOworICAgIH0KKyAgICAgIAorICAgIC5vZmZzZXQgeworICAgICAgICBs
ZWZ0OiAyMDBweDsKKyAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7Cisg
ICAgfQorCis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisKKyAgICA8ZGl2IGNsYXNzPSJyZWd1
bGFyIj48L2Rpdj4KKworICAgIDxkaXYgY2xhc3M9ImNvbXBvc2l0ZWQiPgorICAgICAgICA8ZGl2
IGNsYXNzPSJjb21wb3NpdGVkIj48L2Rpdj4KKyAgICA8L2Rpdj4KKworICAgIDxkaXYgY2xhc3M9
InJlZ3VsYXIgb2Zmc2V0Ij4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29tcG9zaXRlZCI+PC9kaXY+
CisgICAgPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9sYXllcnMvbGF5ZXJzLWdlbmVyYXRlZC1jb250ZW50LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9sYXllcnMvbGF5ZXJzLWdlbmVyYXRlZC1jb250ZW50LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYzNjNzI5MDc5MTViYjQ4MzMzZjAzYjEwYjYwNTc3NmM3
NDI2MGUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2xheWVycy9s
YXllcnMtZ2VuZXJhdGVkLWNvbnRlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzMgQEAKKwor
PT09IEVuYWJsZSB0aGUgTGF5ZXJUcmVlIGFnZW50ID09PQorCitQQVNTCisKKz09PSBHZXQgdGhl
IERvY3VtZW50ID09PQorCitQQVNTCisKKz09PSBHZXQgdGhlIGxheWVyIHRyZWUgPT09CisKK1BB
U1MKKworPT09IENoZWNrIGxheWVycyA9PT0KKworUEFTUzogRXhwZWN0ZWQgbnVtYmVyIG9mIDo6
YmVmb3JlIGxheWVycy4KK1BBU1M6IFRoZSBzb2xlIDo6YmVmb3JlIGxheWVyIGhhcyBhIHBzZXVk
byBlbGVtZW50LgorUEFTUzogRXhwZWN0ZWQgbnVtYmVyIG9mIDo6YWZ0ZXIgbGF5ZXJzLgorUEFT
UzogVGhlIGZpcnN0IDo6YWZ0ZXIgbGF5ZXIgaGFzIGEgcHNldWRvIGVsZW1lbnQuCitQQVNTOiBU
aGUgc2Vjb25kIDo6YWZ0ZXIgbGF5ZXIgaGFzIGEgcHNldWRvIGVsZW1lbnQuCitQQVNTOiBUaGUg
c2Vjb25kIDo6YWZ0ZXIgbGF5ZXIgaXMgYSByZWZsZWN0aW9uLgorUEFTUzogVGhlIHR3byA6OmFm
dGVyIGxheWVycyBoYXZlIHRoZSBzYW1lIG5vZGUgaWQuCitQQVNTOiBUaGUgdHdvIDo6YWZ0ZXIg
bGF5ZXJzIGhhdmUgdGhlIHNhbWUgcHNldWRvIGVsZW1lbnQgaWQuCitQQVNTOiBUaGUgbm9uLXJl
ZmxlY3Rpb24gZ2VuZXJhdGVkIGdlbmVyYXRlZCBsYXllcnMgaGF2ZSB0aGUgc2FtZSBub2RlIGlk
LgorUEFTUzogVGhlIG5vbi1yZWZsZWN0aW9uIGdlbmVyYXRlZCBsYXllcnMgaGF2ZSBkaWZmZXJl
bnQgcHNldWRvIGVsZW1lbnQgaWRzLgorCis9PT0gQ2hlY2sgZ2VuZXJhdGluZyBub2RlID09PQor
CitQQVNTOiBHZW5lcmF0aW5nIG5vZGUgd2FzIGZvdW5kLgorUEFTUzogR2VuZXJhdGluZyBub2Rl
IGhhcyBleHBlY3RlZCBsb2NhbE5hbWUuCitQQVNTOiBHZW5lcmF0aW5nIG5vZGUgaGFzIGlkLgor
UEFTUzogR2VuZXJhdGluZyBub2RlIGhhcyBleHBlY3RlZCBpZC4KKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2xheWVycy9sYXllcnMtZ2VuZXJhdGVkLWNvbnRlbnQuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9sYXllcnMvbGF5ZXJzLWdlbmVyYXRlZC1jb250ZW50Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDcwOWNlMzU3M2Q0ODdmZTBlYTA5YjhkOTRhZmViYjlhYjU0MzY4Ywot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9sYXllcnMvbGF5ZXJzLWdl
bmVyYXRlZC1jb250ZW50Lmh0bWwKQEAgLTAsMCArMSwxNjYgQEAKKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCI+CisKK2Z1bmN0aW9uIHRlc3QoKQoreworCisgICAgdmFyIG5vZGVz
OworIAorICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJET00uc2V0Q2hpbGROb2RlcyJd
ID0gc2V0Q2hpbGROb2RlczsKKworICAgIGVuYWJsZUxheWVyVHJlZUFnZW50KCk7CisgICAgCisg
ICAgZnVuY3Rpb24gZW5hYmxlTGF5ZXJUcmVlQWdlbnQocmVzdWx0KQorICAgIHsKKyAgICAgICAg
c3RlcCh7CisgICAgICAgICAgICBuYW1lOiAiRW5hYmxlIHRoZSBMYXllclRyZWUgYWdlbnQiLAor
ICAgICAgICAgICAgY29tbWFuZDogIkxheWVyVHJlZS5lbmFibGUiLAorICAgICAgICAgICAgcGFy
YW1ldGVyczoge30sCisgICAgICAgICAgICBjYWxsYmFjazogZ2V0RG9jdW1lbnQKKyAgICAgICAg
fSk7CisgICAgfTsKKworICAgIGZ1bmN0aW9uIGdldERvY3VtZW50KCkKKyAgICB7CisgICAgICAg
IC8vIFdlIG11c3QgZmlyc3QgZ2V0IHRoZSBkb2N1bWVudCBzbyB0aGF0IGxhdGVyIG9uIHdlIG1h
eSBnZXQgc2Vuc2libGUgbm9kZUlkcy4KKyAgICAgICAgc3RlcCh7CisgICAgICAgICAgICBuYW1l
OiAiR2V0IHRoZSBEb2N1bWVudCIsCisgICAgICAgICAgICBjb21tYW5kOiAiRE9NLmdldERvY3Vt
ZW50IiwKKyAgICAgICAgICAgIHBhcmFtZXRlcnM6IHt9LAorICAgICAgICAgICAgY2FsbGJhY2s6
IGdldExheWVyVHJlZQorICAgICAgICB9KTsKKyAgICB9OworCisgICAgZnVuY3Rpb24gZ2V0TGF5
ZXJUcmVlKHJlc3VsdCkKKyAgICB7CisgICAgICAgIHN0ZXAoeworICAgICAgICAgICAgbmFtZTog
IkdldCB0aGUgbGF5ZXIgdHJlZSIsCisgICAgICAgICAgICBjb21tYW5kOiAiTGF5ZXJUcmVlLmxh
eWVyc0Zvck5vZGUiLAorICAgICAgICAgICAgcGFyYW1ldGVyczogeyJub2RlSWQiOiByZXN1bHQu
cm9vdC5ub2RlSWR9LAorICAgICAgICAgICAgY2FsbGJhY2s6IGdvdExheWVyVHJlZQorICAgICAg
ICB9KTsKKyAgICB9OworCisgICAgZnVuY3Rpb24gZ290TGF5ZXJUcmVlKHJlc3VsdCkKKyAgICB7
CisgICAgICAgIHZhciBiZWZvcmVMYXllcnMgPSBbXTsKKyAgICAgICAgdmFyIGFmdGVyTGF5ZXJz
ID0gW107CisgICAgICAgIHJlc3VsdC5sYXllcnMuZm9yRWFjaChmdW5jdGlvbiAobGF5ZXIpIHsK
KyAgICAgICAgICAgIGlmICghbGF5ZXIuaXNHZW5lcmF0ZWRDb250ZW50KQorICAgICAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICAgICAgaWYgKGxheWVyLnBzZXVkb0VsZW1lbnQgPT09ICJi
ZWZvcmUiKQorICAgICAgICAgICAgICAgIGJlZm9yZUxheWVycy5wdXNoKGxheWVyKTsKKyAgICAg
ICAgICAgIGlmIChsYXllci5wc2V1ZG9FbGVtZW50ID09PSAiYWZ0ZXIiKQorICAgICAgICAgICAg
ICAgIGFmdGVyTGF5ZXJzLnB1c2gobGF5ZXIpOworICAgICAgICB9KTsKKworICAgICAgICBsb2dU
ZXN0TmFtZSgiQ2hlY2sgbGF5ZXJzIik7CisKKyAgICAgICAgYXNzZXJ0KCJFeHBlY3RlZCBudW1i
ZXIgb2YgOjpiZWZvcmUgbGF5ZXJzIiwgYmVmb3JlTGF5ZXJzLmxlbmd0aCwgMSk7CisgICAgICAg
IGFzc2VydCgiVGhlIHNvbGUgOjpiZWZvcmUgbGF5ZXIgaGFzIGEgcHNldWRvIGVsZW1lbnQiLCBi
ZWZvcmVMYXllcnNbMF0ucHNldWRvRWxlbWVudElkICE9PSAiIiwgdHJ1ZSk7CisKKyAgICAgICAg
YXNzZXJ0KCJFeHBlY3RlZCBudW1iZXIgb2YgOjphZnRlciBsYXllcnMiLCBhZnRlckxheWVycy5s
ZW5ndGgsIDIpOworICAgICAgICBhc3NlcnQoIlRoZSBmaXJzdCA6OmFmdGVyIGxheWVyIGhhcyBh
IHBzZXVkbyBlbGVtZW50IiwgYWZ0ZXJMYXllcnNbMF0ucHNldWRvRWxlbWVudElkICE9PSAiIiwg
dHJ1ZSk7CisgICAgICAgIGFzc2VydCgiVGhlIHNlY29uZCA6OmFmdGVyIGxheWVyIGhhcyBhIHBz
ZXVkbyBlbGVtZW50IiwgYWZ0ZXJMYXllcnNbMV0ucHNldWRvRWxlbWVudElkICE9PSAiIiwgdHJ1
ZSk7CisgICAgICAgIGFzc2VydCgiVGhlIHNlY29uZCA6OmFmdGVyIGxheWVyIGlzIGEgcmVmbGVj
dGlvbiIsIGFmdGVyTGF5ZXJzWzFdLmlzUmVmbGVjdGlvbiwgdHJ1ZSk7CisgICAgICAgIGFzc2Vy
dCgiVGhlIHR3byA6OmFmdGVyIGxheWVycyBoYXZlIHRoZSBzYW1lIG5vZGUgaWQiLCBhZnRlckxh
eWVyc1swXS5ub2RlSWQsIGFmdGVyTGF5ZXJzWzFdLm5vZGVJZCk7CisgICAgICAgIGFzc2VydCgi
VGhlIHR3byA6OmFmdGVyIGxheWVycyBoYXZlIHRoZSBzYW1lIHBzZXVkbyBlbGVtZW50IGlkIiwg
YWZ0ZXJMYXllcnNbMF0ucHNldWRvRWxlbWVudElkLCBhZnRlckxheWVyc1sxXS5wc2V1ZG9FbGVt
ZW50SWQpOworCisgICAgICAgIGFzc2VydCgiVGhlIG5vbi1yZWZsZWN0aW9uIGdlbmVyYXRlZCBn
ZW5lcmF0ZWQgbGF5ZXJzIGhhdmUgdGhlIHNhbWUgbm9kZSBpZCIsIGJlZm9yZUxheWVyc1swXS5u
b2RlSWQsIGFmdGVyTGF5ZXJzWzBdLm5vZGVJZCk7CisgICAgICAgIGFzc2VydCgiVGhlIG5vbi1y
ZWZsZWN0aW9uIGdlbmVyYXRlZCBsYXllcnMgaGF2ZSBkaWZmZXJlbnQgcHNldWRvIGVsZW1lbnQg
aWRzIiwgYmVmb3JlTGF5ZXJzWzBdLnBzZXVkb0VsZW1lbnRJZCAhPT0gYWZ0ZXJMYXllcnNbMF0u
cHNldWRvRWxlbWVudElkLCB0cnVlKTsKKworICAgICAgICB2YXIgbm9kZTsKKyAgICAgICAgdmFy
IG5vZGVJZCA9IGJlZm9yZUxheWVyc1swXS5ub2RlSWQ7CisgICAgICAgIGZvciAodmFyIGkgPSAw
LCBjb3VudCA9IG5vZGVzLmxlbmd0aDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgICAgIGlm
IChub2Rlc1tpXS5ub2RlSWQgPT09IG5vZGVJZCkgeworICAgICAgICAgICAgICAgIG5vZGUgPSBu
b2Rlc1tpXTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorCisgICAgICAgIGxvZ1Rlc3ROYW1lKCJDaGVjayBnZW5lcmF0aW5nIG5vZGUiKTsKKyAgICAg
ICAgCisgICAgICAgIGFzc2VydCgiR2VuZXJhdGluZyBub2RlIHdhcyBmb3VuZCIsICEhbm9kZSwg
dHJ1ZSk7CisgICAgICAgIGFzc2VydCgiR2VuZXJhdGluZyBub2RlIGhhcyBleHBlY3RlZCBsb2Nh
bE5hbWUiLCBub2RlLmxvY2FsTmFtZSwgImRpdiIpOworICAgICAgICBhc3NlcnQoIkdlbmVyYXRp
bmcgbm9kZSBoYXMgaWQiLCBub2RlLmF0dHJpYnV0ZXNbMF0sICJpZCIpOworICAgICAgICBhc3Nl
cnQoIkdlbmVyYXRpbmcgbm9kZSBoYXMgZXhwZWN0ZWQgaWQiLCBub2RlLmF0dHJpYnV0ZXNbMV0s
ICJnZW5lcmF0b3IiKTsKKyAgICAgICAgCisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7CisgICAgfTsKKworICAgIGZ1bmN0aW9uIHNldENoaWxkTm9kZXMgKG1lc3NhZ2VPYmpl
Y3QpIHsKKyAgICAgICAgbm9kZXMgPSBtZXNzYWdlT2JqZWN0LnBhcmFtcy5ub2RlczsKKyAgICB9
OworCisgICAgZnVuY3Rpb24gc3RlcCh0ZXN0KQorICAgIHsKKyAgICAgICAgaWYgKHRlc3QuY2Fs
bGJhY2spCisgICAgICAgICAgICBsb2dUZXN0TmFtZSh0ZXN0Lm5hbWUpOworICAgICAgICBydW5D
b21tYW5kKHRlc3QpOworICAgIH07CisKKyAgICBmdW5jdGlvbiBsb2dUZXN0TmFtZShuYW1lKQor
ICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlxuPT09ICIgKyBuYW1lICsgIiA9PT1c
biIpOworICAgIH07CisKKyAgICBmdW5jdGlvbiBydW5Db21tYW5kKGNvbW1hbmQpCisgICAgewor
ICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKGNvbW1hbmQuY29tbWFuZCwgY29tbWFu
ZC5wYXJhbWV0ZXJzLCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7CisgICAgICAgICAgICBpZiAo
bWVzc2FnZU9iamVjdC5oYXNPd25Qcm9wZXJ0eSgiZXJyb3IiKSkgeworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiAiICsgbWVzc2FnZU9iamVjdC5lcnJvci5tZXNzYWdl
ICsgIiAoIiArIG1lc3NhZ2VPYmplY3QuZXJyb3IuY29kZSArICIpIik7CisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChjb21tYW5kLm5hbWUpCisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1MiKTsKKworICAgICAgICAgICAgaWYgKGNv
bW1hbmQuY2FsbGJhY2spCisgICAgICAgICAgICAgICAgY29tbWFuZC5jYWxsYmFjayhtZXNzYWdl
T2JqZWN0LnJlc3VsdCk7CisgICAgICAgIH0pOworICAgIH07CisKKyAgICBmdW5jdGlvbiBhc3Nl
cnQobmFtZSwgYWN0dWFsLCBleHBlY3RlZCkKKyAgICB7CisgICAgICAgIGlmIChleHBlY3RlZCA9
PT0gYWN0dWFsKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1M6ICIgKyBuYW1l
ICsgIi4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZB
SUw6ICIgKyBuYW1lICsgIi4gRXhwZWN0ZWQgIiArIGV4cGVjdGVkICsgIiBidXQgZ290ICIgKyBh
Y3R1YWwpOworICAgIH07CisKK307CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJET01Db250
ZW50TG9hZGVkIiwgZnVuY3Rpb24oKQoreworICAgIHJ1blRlc3QoKTsKK30sIGZhbHNlKTsKKwor
PC9zY3JpcHQ+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgCisgICAgI2dlbmVyYXRv
cjo6YmVmb3JlLAorICAgICNnZW5lcmF0b3I6OmFmdGVyIHsKKyAgICAgICAgcG9zaXRpb246IGFi
c29sdXRlOworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7Cisg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsYWNrOworICAgICAgICAtd2Via2l0LXRyYW5zZm9y
bTogdHJhbnNsYXRlWigwKTsKKyAgICAgICAgY29udGVudDogIiI7CisgICAgfQorCisgICAgI2dl
bmVyYXRvcjo6YWZ0ZXIgeworICAgICAgICAtd2Via2l0LWJveC1yZWZsZWN0OmJlbG93IDFweCAt
d2Via2l0LWdyYWRpZW50KGxpbmVhciwgbGVmdCB0b3AsIGxlZnQgYm90dG9tLCBmcm9tKHRyYW5z
cGFyZW50KSwgY29sb3Itc3RvcCgwLjUsIHRyYW5zcGFyZW50KSwgdG8od2hpdGUpKTsKKyAgICB9
CisKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKworICAgIDxkaXYgaWQ9ImdlbmVyYXRvciI+
PC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9sYXllcnMvbGF5ZXJzLXJlZmxlY3RlZC1jb250ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9sYXllcnMvbGF5ZXJzLXJlZmxlY3RlZC1jb250ZW50LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kNWQ4OTA5MDEyNjQ0NzJhOWU2NzNkYTI0ZDA1NTZhZDliYjAxYWM5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2xheWVycy9sYXllcnMt
cmVmbGVjdGVkLWNvbnRlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjYgQEAKKworPT09IEVu
YWJsZSB0aGUgTGF5ZXJUcmVlIGFnZW50ID09PQorCitQQVNTCisKKz09PSBHZXQgdGhlIERvY3Vt
ZW50ID09PQorCitQQVNTCisKKz09PSBHZXQgdGhlIGxheWVyIHRyZWUgPT09CisKK1BBU1MKKwor
PT09IENoZWNrIGxheWVycyA9PT0KKworUEFTUzogRXhwZWN0ZWQgbnVtYmVyIG9mIHJlZmxlY3Rl
ZCBsYXllcnMuCitQQVNTOiBGaXJzdCByZWZsZWN0ZWQgbGF5ZXIgaGFzIGEgbm9kZS4KKworPT09
IENoZWNrIHJlZmxlY3RlZCBub2RlID09PQorCitQQVNTOiBOb2RlIGZvciBsYXllciB3YXMgZm91
bmQuCitQQVNTOiBOb2RlIGhhcyBleHBlY3RlZCBsb2NhbE5hbWUuCitQQVNTOiBOb2RlIGhhcyBl
eHBlY3RlZCBudW1iZXIgb2YgYXR0cmlidXRlcy4KK1BBU1M6IE5vZGUgaGFzIENTUyBjbGFzcy4K
K1BBU1M6IE5vZGUgaGFzIGV4cGVjdGVkIENTUyBjbGFzcy4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2xheWVycy9sYXllcnMtcmVmbGVjdGVkLWNvbnRlbnQuaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9sYXllcnMvbGF5ZXJzLXJlZmxlY3RlZC1jb250ZW50Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDMyMjA1OGI2NWE0NTAxNzZkZDA2NTZhNGVlNDY0MzBjYTg4YThiYQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9sYXllcnMvbGF5ZXJzLXJlZmxl
Y3RlZC1jb250ZW50Lmh0bWwKQEAgLTAsMCArMSwxNDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+CisKK2Z1bmN0aW9uIHRlc3QoKQoreworCisgICAgdmFyIG5vZGVzOwor
IAorICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJET00uc2V0Q2hpbGROb2RlcyJdID0g
c2V0Q2hpbGROb2RlczsKKworICAgIGVuYWJsZUxheWVyVHJlZUFnZW50KCk7CisgICAgCisgICAg
ZnVuY3Rpb24gZW5hYmxlTGF5ZXJUcmVlQWdlbnQocmVzdWx0KQorICAgIHsKKyAgICAgICAgc3Rl
cCh7CisgICAgICAgICAgICBuYW1lOiAiRW5hYmxlIHRoZSBMYXllclRyZWUgYWdlbnQiLAorICAg
ICAgICAgICAgY29tbWFuZDogIkxheWVyVHJlZS5lbmFibGUiLAorICAgICAgICAgICAgcGFyYW1l
dGVyczoge30sCisgICAgICAgICAgICBjYWxsYmFjazogZ2V0RG9jdW1lbnQKKyAgICAgICAgfSk7
CisgICAgfTsKKworICAgIGZ1bmN0aW9uIGdldERvY3VtZW50KCkKKyAgICB7CisgICAgICAgIC8v
IFdlIG11c3QgZmlyc3QgZ2V0IHRoZSBkb2N1bWVudCBzbyB0aGF0IGxhdGVyIG9uIHdlIG1heSBn
ZXQgc2Vuc2libGUgbm9kZUlkcy4KKyAgICAgICAgc3RlcCh7CisgICAgICAgICAgICBuYW1lOiAi
R2V0IHRoZSBEb2N1bWVudCIsCisgICAgICAgICAgICBjb21tYW5kOiAiRE9NLmdldERvY3VtZW50
IiwKKyAgICAgICAgICAgIHBhcmFtZXRlcnM6IHt9LAorICAgICAgICAgICAgY2FsbGJhY2s6IGdl
dExheWVyVHJlZQorICAgICAgICB9KTsKKyAgICB9OworCisgICAgZnVuY3Rpb24gZ2V0TGF5ZXJU
cmVlKHJlc3VsdCkKKyAgICB7CisgICAgICAgIHN0ZXAoeworICAgICAgICAgICAgbmFtZTogIkdl
dCB0aGUgbGF5ZXIgdHJlZSIsCisgICAgICAgICAgICBjb21tYW5kOiAiTGF5ZXJUcmVlLmxheWVy
c0Zvck5vZGUiLAorICAgICAgICAgICAgcGFyYW1ldGVyczogeyJub2RlSWQiOiByZXN1bHQucm9v
dC5ub2RlSWR9LAorICAgICAgICAgICAgY2FsbGJhY2s6IGdvdExheWVyVHJlZQorICAgICAgICB9
KTsKKyAgICB9OworCisgICAgZnVuY3Rpb24gZ290TGF5ZXJUcmVlKHJlc3VsdCkKKyAgICB7Cisg
ICAgICAgIHZhciByZWZsZWN0ZWRMYXllcnMgPSByZXN1bHQubGF5ZXJzLmZpbHRlcihmdW5jdGlv
bihsYXllcikgeworICAgICAgICAgICAgcmV0dXJuIGxheWVyLmlzUmVmbGVjdGlvbjsKKyAgICAg
ICAgfSk7CisKKyAgICAgICAgbG9nVGVzdE5hbWUoIkNoZWNrIGxheWVycyIpOworCisgICAgICAg
IGFzc2VydCgiRXhwZWN0ZWQgbnVtYmVyIG9mIHJlZmxlY3RlZCBsYXllcnMiLCByZWZsZWN0ZWRM
YXllcnMubGVuZ3RoLCAxKTsKKyAgICAgICAgYXNzZXJ0KCJGaXJzdCByZWZsZWN0ZWQgbGF5ZXIg
aGFzIGEgbm9kZSIsIHJlZmxlY3RlZExheWVyc1swXS5ub2RlSWQgPiAwLCB0cnVlKTsKKworCisg
ICAgICAgIGxvZ1Rlc3ROYW1lKCJDaGVjayByZWZsZWN0ZWQgbm9kZSIpOworCisgICAgICAgIHZh
ciBub2RlOworICAgICAgICB2YXIgbm9kZUlkID0gcmVmbGVjdGVkTGF5ZXJzWzBdLm5vZGVJZDsK
KyAgICAgICAgZm9yICh2YXIgaSA9IDAsIGNvdW50ID0gbm9kZXMubGVuZ3RoOyBpIDwgY291bnQ7
ICsraSkgeworICAgICAgICAgICAgaWYgKG5vZGVzW2ldLm5vZGVJZCA9PT0gbm9kZUlkKSB7Cisg
ICAgICAgICAgICAgICAgbm9kZSA9IG5vZGVzW2ldOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgYXNzZXJ0KCJOb2RlIGZvciBsYXll
ciB3YXMgZm91bmQiLCAhIW5vZGUsIHRydWUpOworICAgICAgICBhc3NlcnQoIk5vZGUgaGFzIGV4
cGVjdGVkIGxvY2FsTmFtZSIsIG5vZGUubG9jYWxOYW1lLCAiZGl2Iik7CisgICAgICAgIGFzc2Vy
dCgiTm9kZSBoYXMgZXhwZWN0ZWQgbnVtYmVyIG9mIGF0dHJpYnV0ZXMiLCBub2RlLmF0dHJpYnV0
ZXMubGVuZ3RoLCAyKTsKKyAgICAgICAgYXNzZXJ0KCJOb2RlIGhhcyBDU1MgY2xhc3MiLCBub2Rl
LmF0dHJpYnV0ZXNbMF0sICJjbGFzcyIpOworICAgICAgICBhc3NlcnQoIk5vZGUgaGFzIGV4cGVj
dGVkIENTUyBjbGFzcyIsIG5vZGUuYXR0cmlidXRlc1sxXSwgInJlZmxlY3RlZCBjb21wb3NpdGVk
Iik7CisgICAgICAgIAorICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAg
IH07CisKKyAgICBmdW5jdGlvbiBzZXRDaGlsZE5vZGVzIChtZXNzYWdlT2JqZWN0KSB7CisgICAg
ICAgIG5vZGVzID0gbWVzc2FnZU9iamVjdC5wYXJhbXMubm9kZXM7CisgICAgfTsKKworICAgIGZ1
bmN0aW9uIHN0ZXAodGVzdCkKKyAgICB7CisgICAgICAgIGlmICh0ZXN0LmNhbGxiYWNrKQorICAg
ICAgICAgICAgbG9nVGVzdE5hbWUodGVzdC5uYW1lKTsKKyAgICAgICAgcnVuQ29tbWFuZCh0ZXN0
KTsKKyAgICB9OworCisgICAgZnVuY3Rpb24gbG9nVGVzdE5hbWUobmFtZSkKKyAgICB7CisgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJcbj09PSAiICsgbmFtZSArICIgPT09XG4iKTsKKyAgICB9
OworCisgICAgZnVuY3Rpb24gcnVuQ29tbWFuZChjb21tYW5kKQorICAgIHsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5zZW5kQ29tbWFuZChjb21tYW5kLmNvbW1hbmQsIGNvbW1hbmQucGFyYW1ldGVy
cywgZnVuY3Rpb24obWVzc2FnZU9iamVjdCkgeworICAgICAgICAgICAgaWYgKG1lc3NhZ2VPYmpl
Y3QuaGFzT3duUHJvcGVydHkoImVycm9yIikpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiRkFJTDogIiArIG1lc3NhZ2VPYmplY3QuZXJyb3IubWVzc2FnZSArICIgKCIgKyBt
ZXNzYWdlT2JqZWN0LmVycm9yLmNvZGUgKyAiKSIpOworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBpZiAoY29tbWFuZC5uYW1lKQorICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJQQVNTIik7CisKKyAgICAgICAgICAgIGlmIChjb21tYW5kLmNhbGxi
YWNrKQorICAgICAgICAgICAgICAgIGNvbW1hbmQuY2FsbGJhY2sobWVzc2FnZU9iamVjdC5yZXN1
bHQpOworICAgICAgICB9KTsKKyAgICB9OworCisgICAgZnVuY3Rpb24gYXNzZXJ0KG5hbWUsIGFj
dHVhbCwgZXhwZWN0ZWQpCisgICAgeworICAgICAgICBpZiAoZXhwZWN0ZWQgPT09IGFjdHVhbCkK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiAiICsgbmFtZSArICIuIik7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiAiICsgbmFt
ZSArICIuIEV4cGVjdGVkICIgKyBleHBlY3RlZCArICIgYnV0IGdvdCAiICsgYWN0dWFsKTsKKyAg
ICB9OworCit9OworCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIs
IGZ1bmN0aW9uKCkKK3sKKyAgICBydW5UZXN0KCk7Cit9LCBmYWxzZSk7CisKKzwvc2NyaXB0Pgor
PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKworICAgIC5yZWZsZWN0ZWQgeworICAgICAgICBwb3Np
dGlvbjogYWJzb2x1dGU7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiAx
MDBweDsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7CisgICAgICAgIC13ZWJraXQt
Ym94LXJlZmxlY3Q6IGJlbG93OworICAgIH0KKworICAgIC5jb21wb3NpdGVkIHsKKyAgICAgICAg
LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7CisgICAgfQorCis8L3N0eWxlPgorPC9o
ZWFkPgorPGJvZHk+CisKKyAgICA8ZGl2IGNsYXNzPSJyZWZsZWN0ZWQiPjwvZGl2PgorICAgIDxk
aXYgY2xhc3M9InJlZmxlY3RlZCBjb21wb3NpdGVkIj48L2Rpdj4KKworPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2UvYXJjaGl2ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9hcmNoaXZlLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lNzcyM2RmMDJmNDlmYjlmNWM0ZjEwNmVlMjhmNGRhZTJlZjJlNDYzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2UvYXJjaGl2ZS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyIEBACitQQVNTOiBSZWNlaXZlZCBhcmNoaXZlIGRhdGEuCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL2FyY2hpdmUuaHRtbCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9wYWdlL2FyY2hpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YWVkZjNkNjQx
OGNlZmFhMzMwNzVkYmRiOGI1NzM2MDdiZTU3M2ZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3BhZ2UvYXJjaGl2ZS5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFu
ZCgiUGFnZS5lbmFibGUiLCB7fSk7CisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUGFn
ZS5hcmNoaXZlIiwge30sIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHZhciBkYXRhID0gZXZl
bnQucmVzdWx0LmRhdGE7CisgICAgICAgIGlmICghZGF0YSkKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJGQUlMOiBubyBkYXRhIik7CisgICAgICAgIGVsc2UgaWYgKGRhdGEubGVuZ3Ro
IDwgMTAwMCkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiB1bmV4cGVjdGVk
bHkgc2hvcnQgZGF0YS4gQSBzZXJpYWxpemVkIGFyY2hpdmUgc2hvdWxkIGJlIHByZXR0eSBsYXJn
ZS4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1M6
IFJlY2VpdmVkIGFyY2hpdmUgZGF0YS4iKTsKKworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBs
ZXRlVGVzdCgpOworICAgIH0pOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9
InJ1blRlc3QoKSI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2UvZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40ZmYwMWQ4YTBiZTkyZTdmZDQzYmZlOGI0NzdkZWM5NGEzODNhNDI0
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2UvZnJhbWVTY2hl
ZHVsZWROYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworU2NoZWR1bGVk
IG5hdmlnYXRpb24gd2l0aCBkZWxheSAwCitTdGFydGVkIGxvYWRpbmcKK0NsZWFyZWQgc2NoZWR1
bGVkIG5hdmlnYXRpb24KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uv
ZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFn
ZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YWIxOWVjYTYxNGFk
MTg3NzJhZTRjY2VjYTY1NDQwM2M2M2YzMWY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3BhZ2UvZnJhbWVTY2hlZHVsZWROYXZpZ2F0aW9uLmh0bWwKQEAgLTAsMCAr
MSw0MyBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIGxvYWQoKQoreworICAgIGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoImlmcmFtZSIpLnNyYyA9ICJyZXNvdXJjZXMvYmxhbmsuaHRtbCI7Cit9
CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJQ
YWdlLmZyYW1lU2NoZWR1bGVkTmF2aWdhdGlvbiJdID0gb25TY2hlZHVsZWQ7CisgICAgSW5zcGVj
dG9yVGVzdC5ldmVudEhhbmRsZXJbIlBhZ2UuZnJhbWVTdGFydGVkTG9hZGluZyJdID0gb25TdGFy
dGVkOworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJQYWdlLmZyYW1lQ2xlYXJlZFNj
aGVkdWxlZE5hdmlnYXRpb24iXSA9IG9uQ2xlYXJlZDsKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRD
b21tYW5kKCJQYWdlLmVuYWJsZSIsIHt9KTsKKworICAgIGZ1bmN0aW9uIG9uU2NoZWR1bGVkKG1z
ZykKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJTY2hlZHVsZWQgbmF2aWdhdGlv
biB3aXRoIGRlbGF5ICIgKyBtc2cucGFyYW1zLmRlbGF5KTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBvblN0YXJ0ZWQobXNnKQorICAgIHsKKyAgICAgICAgLy8gVGhpcyBldmVudCBzaG91bGQgYmUg
cmVjZWl2ZWQgYmVmb3JlIHRoZSBzY2hlZHVsZWQgbmF2aWdhdGlvbiBpcyBjbGVhcmVkLgorICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiU3RhcnRlZCBsb2FkaW5nIik7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gb25DbGVhcmVkKG1zZykKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJDbGVhcmVkIHNjaGVkdWxlZCBuYXZpZ2F0aW9uIik7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
Y29tcGxldGVUZXN0KCk7CisgICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgi
UnVudGltZS5ldmFsdWF0ZSIsIHsgImV4cHJlc3Npb24iOiAibG9hZCgpIiB9KTsKK30KKworPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8aWZyYW1lPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2UvZnJh
bWVTdGFydGVkTG9hZGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFn
ZS9mcmFtZVN0YXJ0ZWRMb2FkaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NjBlZjU3YzM4
NjBjMTJmYzMyMGJkZGFkOTk0ZDNmZGEyZmE0ZGE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3BhZ2UvZnJhbWVTdGFydGVkTG9hZGluZy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw0IEBACisKK1N0YXJ0ZWQgbG9hZGluZworU3RvcHBlZCBsb2FkaW5nCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL2ZyYW1lU3RhcnRlZExvYWRpbmcuaHRt
bCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL2ZyYW1lU3RhcnRlZExvYWRpbmcuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iM2E5NDBkNTA1YzIyN2U3MWVhZTNiZjU2ZDZiZmUyNWE4MzFmN2Q1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2UvZnJhbWVTdGFydGVkTG9h
ZGluZy5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBsb2Fk
KCkKK3sKKyAgICB2YXIgZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsK
KyAgICBmcmFtZS5zcmMgPSAicmVzb3VyY2VzL2JsYW5rLmh0bWwiOworICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoZnJhbWUpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNw
ZWN0b3JUZXN0LmV2ZW50SGFuZGxlclsiUGFnZS5mcmFtZVN0YXJ0ZWRMb2FkaW5nIl0gPSBvblN0
YXJ0OworICAgIEluc3BlY3RvclRlc3QuZXZlbnRIYW5kbGVyWyJQYWdlLmZyYW1lU3RvcHBlZExv
YWRpbmciXSA9IG9uU3RvcDsKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJQYWdlLmVu
YWJsZSIsIHt9KTsKKworICAgIGZ1bmN0aW9uIG9uU3RhcnQoKQorICAgIHsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIlN0YXJ0ZWQgbG9hZGluZyIpOworICAgIH0KKyAgICBmdW5jdGlvbiBv
blN0b3AoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlN0b3BwZWQgbG9hZGlu
ZyIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KKworICAg
IEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlJ1bnRpbWUuZXZhbHVhdGUiLCB7ICJleHByZXNz
aW9uIjogImxvYWQoKSIgfSk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3BhZ2UvamF2YXNjcmlwdERpYWxvZ0V2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9qYXZhc2NyaXB0RGlhbG9nRXZlbnRzLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hNzQ4NzJkNGU1ZWM1NDg4YmE0YmM4OTY4N2UwZGU2Yjg0M2E0Mjc0Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2UvamF2YXNjcmlwdERp
YWxvZ0V2ZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorQ09ORklSTSBOQVZJR0FU
SU9OOiBiZWZvcmV1bmxvYWQgaW4gamF2YXNjcmlwdERpYWxvZ0V2ZW50cworQUxFUlQ6IGFsZXJ0
CitDT05GSVJNOiBjb25maXJtCitQUk9NUFQ6IHByb21wdCwgZGVmYXVsdCB0ZXh0OiAKK09wZW5p
bmcgd2l0aCBtZXNzYWdlOiBiZWZvcmV1bmxvYWQgaW4gamF2YXNjcmlwdERpYWxvZ0V2ZW50cwor
Q2xvc2VkCitPcGVuaW5nIHdpdGggbWVzc2FnZTogYWxlcnQKK0Nsb3NlZAorT3BlbmluZyB3aXRo
IG1lc3NhZ2U6IGNvbmZpcm0KK0Nsb3NlZAorT3BlbmluZyB3aXRoIG1lc3NhZ2U6IHByb21wdAor
Q2xvc2VkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL2phdmFzY3Jp
cHREaWFsb2dFdmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL2phdmFzY3Jp
cHREaWFsb2dFdmVudHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNGUzN2IwZDdmMjBlYzEzNzUzOTQxNjQx
M2NhZjA0ZmQ3OTgzYWYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L3BhZ2UvamF2YXNjcmlwdERpYWxvZ0V2ZW50cy5odG1sCkBAIC0wLDAgKzEsNDQgQEAKKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRw
L3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JldW5sb2FkIiwgb25CZWZv
cmVVbmxvYWQpOworCitmdW5jdGlvbiBvbkJlZm9yZVVubG9hZCgpCit7CisgICAgd2luZG93LnJl
bW92ZUV2ZW50TGlzdGVuZXIoImJlZm9yZXVubG9hZCIsIG9uQmVmb3JlVW5sb2FkKTsKKyAgICBy
ZXR1cm4gImJlZm9yZXVubG9hZCBpbiBqYXZhc2NyaXB0RGlhbG9nRXZlbnRzIjsKK30KKworZnVu
Y3Rpb24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5ldmVudEhhbmRsZXJbIlBhZ2UuamF2
YXNjcmlwdERpYWxvZ09wZW5pbmciXSA9IG9uT3BlbmluZzsKKyAgICBJbnNwZWN0b3JUZXN0LmV2
ZW50SGFuZGxlclsiUGFnZS5qYXZhc2NyaXB0RGlhbG9nQ2xvc2VkIl0gPSBvbkNsb3NlZDsKKyAg
ICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJQYWdlLmVuYWJsZSIsIHt9KTsKKworICAgIGZ1
bmN0aW9uIG9uT3BlbmluZyhldmVudCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJPcGVuaW5nIHdpdGggbWVzc2FnZTogIiArIGV2ZW50LnBhcmFtcy5tZXNzYWdlKTsKKyAgICB9
CisgICAgZnVuY3Rpb24gb25DbG9zZWQoKQorICAgIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkNsb3NlZCIpOworICAgIH0KKworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlBh
Z2UubmF2aWdhdGUiLCB7ICJ1cmwiOiAibm9zdWNodXJsIiB9KTsKKyAgICBJbnNwZWN0b3JUZXN0
LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwgeyAiZXhwcmVzc2lvbiI6ICJhbGVydCgn
YWxlcnQnKSIgfSk7CisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUnVudGltZS5ldmFs
dWF0ZSIsIHsgImV4cHJlc3Npb24iOiAiY29uZmlybSgnY29uZmlybScpIiB9KTsKKyAgICBJbnNw
ZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJSdW50aW1lLmV2YWx1YXRlIiwgeyAiZXhwcmVzc2lvbiI6
ICJwcm9tcHQoJ3Byb21wdCcpIiB9LCBvbkRvbmUpOworCisgICAgZnVuY3Rpb24gb25Eb25lKCkK
KyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorfQor
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3Jlc291cmNl
cy9ibGFuay5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2UvcmVzb3VyY2VzL2JsYW5r
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTA1MzFhNGIzZWQxOGIyMGM5ZDViOTUyYjYxY2JiOTM1ZTBlNTBh
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3Jlc291cmNl
cy9ibGFuay5odG1sCkBAIC0wLDAgKzEsMiBAQAorPGh0bWw+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9zZXRFbXVsYXRlZE1lZGlhLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wYWdlL3NldEVtdWxhdGVkTWVkaWEtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg5ZWRlYmUyMjdmMTJjNWE5NTlmYWJjNGI5NmFlOGIzYmI3YzRmMjIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcGFnZS9zZXRFbXVsYXRl
ZE1lZGlhLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGlu
ZSA3OiBSZWZlcmVuY2VFcnJvcjogQ2FuJ3QgZmluZCB2YXJpYWJsZTogb2JqZWN0VGhhdERvZXNO
b3RFeGlzdAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDc6IFJlZmVyZW5jZUVycm9yOiBDYW4ndCBm
aW5kIHZhcmlhYmxlOiBvYmplY3RUaGF0RG9lc05vdEV4aXN0CitUZXN0IHRoYXQgdW5jYXVnaHQg
ZXhjZXB0aW9uIGluIE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgd2lsbCBiZSByZXBvcnRlZCB0byB0
aGUgY29uc29sZS4gT24gc3VjY2VzcyB5b3Ugc2hvdWxkIHNlZSB0d28gZXhjZXB0aW9ucyBpbiB0
aGUgbGlzdGVuZXIgbG9nZ2VkIHRvIHRoZSBjb25zb2xlIChmaXJzdCB0aW1lIHdoZW4gdGhlIG1l
ZGlhIHR5cGUgaXMgb3ZlcnJpZGRlbiBhbmQgc2Vjb25kIC0gd2hlbiB0aGV5IGFyZSByZXN0b3Jl
ZCkuIEJ1ZyAxMDUxNjIuCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Bh
Z2Uvc2V0RW11bGF0ZWRNZWRpYS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3BhZ2Uvc2V0
RW11bGF0ZWRNZWRpYS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4OGE1YTUwYmNmZWE2ZWQ5NDQ3ODcwNTlm
M2UyMWQyNjk5YjVhY2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cGFnZS9zZXRFbXVsYXRlZE1lZGlhLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
Cit2YXIgdGhlTWVkaWFRdWVyeUxpc3QgPSB3aW5kb3cubWF0Y2hNZWRpYSgicHJpbnQiKTsKK3Ro
ZU1lZGlhUXVlcnlMaXN0LmFkZExpc3RlbmVyKGZ1bmN0aW9uKGFNZWRpYVF1ZXJ5TGlzdCkgewor
ICAgIG9iamVjdFRoYXREb2VzTm90RXhpc3QucHJvZHVjZUVycm9yKCk7Cit9KTsKKworZnVuY3Rp
b24gdGVzdCgpCit7CisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUGFnZS5lbmFibGUi
LCB7fSk7CisgICAgSW5zcGVjdG9yVGVzdC5zZW5kQ29tbWFuZCgiUGFnZS5zZXRFbXVsYXRlZE1l
ZGlhIiwgeyJtZWRpYSI6ICJwcmludCJ9LCBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7CisgICAg
ICAgIGlmIChtZXNzYWdlT2JqZWN0LmVycm9yKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkZBSUxFRDogIiArIG1lc3NhZ2VPYmplY3QuZXJyb3IubWVzc2FnZSk7CisgICAgICAgIElu
c3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIlBhZ2UuZGlzYWJsZSIsIHt9KTsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9KTsKK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdCB0aGF0IHVuY2F1Z2h0IGV4Y2Vw
dGlvbiBpbiBNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyIHdpbGwgYmUgcmVwb3J0ZWQgdG8gdGhlIGNv
bnNvbGUuIE9uIHN1Y2Nlc3MgeW91IHNob3VsZCBzZWUgdHdvIGV4Y2VwdGlvbnMgaW4gdGhlIGxp
c3RlbmVyIGxvZ2dlZCB0byB0aGUgY29uc29sZSAoZmlyc3QgdGltZSB3aGVuIHRoZSBtZWRpYSB0
eXBlIGlzIG92ZXJyaWRkZW4gYW5kIHNlY29uZCAtIHdoZW4gdGhleSBhcmUgcmVzdG9yZWQpLiA8
YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1MTYyIj5C
dWcgMTA1MTYyLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9wcm90b2NvbC1wcm9taXNlLXJlc3VsdC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvcHJvdG9jb2wtcHJvbWlzZS1yZXN1bHQtZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZWI3YTUzOThiYTZkZWIzYWRkMDEyZGUxMzA1NmQx
Y2NmMWQwM2I4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC1wcm9taXNlLXJlc3VsdC1leHBlY3RlZC50
eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLVRlc3RpbmcgdGhhdCB0aGUgaW5zcGVj
dG9yIGJhY2tlbmQgY2FuIHJldHVybiBjb21tYW5kIHJlc3VsdHMgdXNpbmcgcHJvbWlzZXMuCi0K
LVVzaW5nIGEgY2FsbGJhY2ssIGdvdCBSdW50aW1lQWdlbnQuZXZhbHVhdGUoKSByZXN1bHQ6IDQx
Ci1TZXR0aW5nIHVwIHR3byBwcm9taXNlcyBmb3IgUnVudGltZUFnZW50LmV2YWx1YXRlLgotVXNp
bmcgYSBwcm9taXNlLCBnb3QgUnVudGltZUFnZW50LmV2YWx1YXRlKCkgcmVzdWx0OiA0MgotVXNp
bmcgYSBwcm9taXNlLCBnb3QgUnVudGltZUFnZW50LmV2YWx1YXRlKCkgcmVzdWx0OiA0MwotCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvdG9jb2wtcHJvbWlzZS1yZXN1bHQu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC1wcm9taXNlLXJlc3VsdC5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNDJmNDZhZGRhNTI2YWI5ZTgzYjc0MDM2
M2E4Y2FiYWY4MGFkMWFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC1wcm9taXNlLXJlc3VsdC5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMzggKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICB2YXIgYzEgPSBSdW50aW1lQWdlbnQuZXZhbHVh
dGUoIjQxIiwgZnVuY3Rpb24oZXJyLCByZXN1bHQsIHdhc1Rocm93bikgewotICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiVXNpbmcgYSBjYWxsYmFjaywgZ290IFJ1bnRpbWVBZ2VudC5ldmFsdWF0
ZSgpIHJlc3VsdDogIiArIHJlc3VsdC52YWx1ZSk7Ci0KLSAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIlNldHRpbmcgdXAgdHdvIHByb21pc2VzIGZvciBSdW50aW1lQWdlbnQuZXZhbHVhdGUuIik7
Ci0KLSAgICAgICAgdmFyIHAxID0gUnVudGltZUFnZW50LmV2YWx1YXRlLnByb21pc2UoIjQyIik7
Ci0gICAgICAgIHZhciBwMiA9IFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZSgiNDMiKTsKLQotICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydCghKGMxIGluc3RhbmNlb2YgUHJvbWlzZSksICJBIHByb21p
c2Ugd2FzIHJldHVybmVkIGV2ZW4gdGhvdWdoIGEgY2FsbGJhY2sgd2FzIHN1cHBsaWVkIHRvIHRo
ZSBjb21tYW5kISIpOwotCi0gICAgICAgIHAxLnRoZW4oZnVuY3Rpb24ocGF5bG9hZCkgewotICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlVzaW5nIGEgcHJvbWlzZSwgZ290IFJ1bnRpbWVB
Z2VudC5ldmFsdWF0ZSgpIHJlc3VsdDogIiArIHBheWxvYWQucmVzdWx0LnZhbHVlKTsKLSAgICAg
ICAgfSk7Ci0gICAgICAgIHAyLnRoZW4oZnVuY3Rpb24ocGF5bG9hZCkgewotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coIlVzaW5nIGEgcHJvbWlzZSwgZ290IFJ1bnRpbWVBZ2VudC5ldmFs
dWF0ZSgpIHJlc3VsdDogIiArIHBheWxvYWQucmVzdWx0LnZhbHVlKTsKLSAgICAgICAgfSk7Ci0K
LSAgICAgICAgUHJvbWlzZS5hbGwoW3AxLCBwMl0pLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwotICAgICAgICB9KS5jYXRjaChmdW5j
dGlvbihlcnJvcikgewotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVSUk9SOiAiICsg
ZXJyb3IpOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKLSAgICAg
ICAgfSkKLSAgICB9KTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgotICAgIDxwPlRlc3RpbmcgdGhhdCB0aGUgaW5zcGVjdG9yIGJhY2tlbmQgY2FuIHJl
dHVybiBjb21tYW5kIHJlc3VsdHMgdXNpbmcgcHJvbWlzZXMuPC9wPgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb3RvY29sL3Byb3RvY29sLXBy
b21pc2UtcmVzdWx0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2Nv
bC9wcm90b2NvbC1wcm9taXNlLXJlc3VsdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWViN2E1
Mzk4YmE2ZGViM2FkZDAxMmRlMTMwNTZkMWNjZjFkMDNiOAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9wcm90b2NvbC9wcm90b2NvbC1wcm9taXNlLXJlc3VsdC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitUZXN0aW5nIHRoYXQgdGhlIGluc3BlY3RvciBiYWNr
ZW5kIGNhbiByZXR1cm4gY29tbWFuZCByZXN1bHRzIHVzaW5nIHByb21pc2VzLgorCitVc2luZyBh
IGNhbGxiYWNrLCBnb3QgUnVudGltZUFnZW50LmV2YWx1YXRlKCkgcmVzdWx0OiA0MQorU2V0dGlu
ZyB1cCB0d28gcHJvbWlzZXMgZm9yIFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZS4KK1VzaW5nIGEgcHJv
bWlzZSwgZ290IFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZSgpIHJlc3VsdDogNDIKK1VzaW5nIGEgcHJv
bWlzZSwgZ290IFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZSgpIHJlc3VsdDogNDMKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb3RvY29sL3Byb3RvY29sLXByb21pc2UtcmVzdWx0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvdG9jb2wvcHJvdG9jb2wtcHJvbWlzZS1y
ZXN1bHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjcwZjE4YjBiODE3NDFkZjE3NTk3YmZkODI3NmMwZTMx
NjYwMjViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb3RvY29s
L3Byb3RvY29sLXByb21pc2UtcmVzdWx0Lmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
ZnVuY3Rpb24gdGVzdCgpCit7CisgICAgdmFyIGMxID0gUnVudGltZUFnZW50LmV2YWx1YXRlKCI0
MSIsIGZ1bmN0aW9uKGVyciwgcmVzdWx0LCB3YXNUaHJvd24pIHsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIlVzaW5nIGEgY2FsbGJhY2ssIGdvdCBSdW50aW1lQWdlbnQuZXZhbHVhdGUoKSBy
ZXN1bHQ6ICIgKyByZXN1bHQudmFsdWUpOworCisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJT
ZXR0aW5nIHVwIHR3byBwcm9taXNlcyBmb3IgUnVudGltZUFnZW50LmV2YWx1YXRlLiIpOworCisg
ICAgICAgIHZhciBwMSA9IFJ1bnRpbWVBZ2VudC5ldmFsdWF0ZS5wcm9taXNlKCI0MiIpOworICAg
ICAgICB2YXIgcDIgPSBSdW50aW1lQWdlbnQuZXZhbHVhdGUoIjQzIik7CisKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnQoIShjMSBpbnN0YW5jZW9mIFByb21pc2UpLCAiQSBwcm9taXNlIHdh
cyByZXR1cm5lZCBldmVuIHRob3VnaCBhIGNhbGxiYWNrIHdhcyBzdXBwbGllZCB0byB0aGUgY29t
bWFuZCEiKTsKKworICAgICAgICBwMS50aGVuKGZ1bmN0aW9uKHBheWxvYWQpIHsKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJVc2luZyBhIHByb21pc2UsIGdvdCBSdW50aW1lQWdlbnQu
ZXZhbHVhdGUoKSByZXN1bHQ6ICIgKyBwYXlsb2FkLnJlc3VsdC52YWx1ZSk7CisgICAgICAgIH0p
OworICAgICAgICBwMi50aGVuKGZ1bmN0aW9uKHBheWxvYWQpIHsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJVc2luZyBhIHByb21pc2UsIGdvdCBSdW50aW1lQWdlbnQuZXZhbHVhdGUo
KSByZXN1bHQ6ICIgKyBwYXlsb2FkLnJlc3VsdC52YWx1ZSk7CisgICAgICAgIH0pOworCisgICAg
ICAgIFByb21pc2UuYWxsKFtwMSwgcDJdKS50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24o
ZXJyb3IpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFUlJPUjogIiArIGVycm9y
KTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgIH0p
CisgICAgfSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgp
Ij4KKyAgICA8cD5UZXN0aW5nIHRoYXQgdGhlIGluc3BlY3RvciBiYWNrZW5kIGNhbiByZXR1cm4g
Y29tbWFuZCByZXN1bHRzIHVzaW5nIHByb21pc2VzLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1lL2dldFByb3BlcnRpZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3J1bnRpbWUvZ2V0UHJvcGVydGllcy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTU2MGQ2ZWU2OWZiM2FhMzEzNDMyYjZiNTcxZjQ2ZDY1
YTQyZDQ1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9ydW50aW1l
L2dldFByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzQgQEAKKworPT0gUnVubmlu
ZyB0ZXN0IHN1aXRlOiBSdW50aW1lLmdldFByb3BlcnRpZXMKKy0tIFJ1bm5pbmcgdGVzdCBjYXNl
OiBDaGVja1Byb3BlcnRpZXNPZldyYXBwZXJPYmplY3QKK0V2YWx1YXRpbmcgZXhwcmVzc2lvbjog
KGZ1bmN0aW9uKCl7dmFyIHIgPSBPYmplY3QoNSk7IHIuZm9vID0gJ2NhdCc7cmV0dXJuIHI7fSko
KQorUHJvcGVydGllczoKKyAgX19wcm90b19fIG9iamVjdCBOdW1iZXIKKyAgZm9vIHN0cmluZyBj
YXQKKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENoZWNrUHJvcGVydGllc09mQXJyYXkKK0V2YWx1
YXRpbmcgZXhwcmVzc2lvbjogWydyZWQnLCAnZ3JlZW4nLCAnYmx1ZSddCitQcm9wZXJ0aWVzOgor
ICBfX3Byb3RvX18gb2JqZWN0IEFycmF5CisgIDAgc3RyaW5nIHJlZAorICAxIHN0cmluZyBncmVl
bgorICAyIHN0cmluZyBibHVlCisgIGxlbmd0aCBudW1iZXIgMworCistLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogQ2hlY2tQcm9wZXJ0aWVzT2ZCb3VuZENvbnN0cnVjdG9yCitFdmFsdWF0aW5nIGV4cHJl
c3Npb246IE51bWJlci5iaW5kKHt9LCA1KQorUHJvcGVydGllczoKKyAgX19wcm90b19fIGZ1bmN0
aW9uIGZ1bmN0aW9uICgpIHsKKyAgICBbbmF0aXZlIGNvZGVdCit9CisgIGFyZ3VtZW50cworICBj
YWxsZXIKKyAgbGVuZ3RoIG51bWJlciAwCisgIG5hbWUgc3RyaW5nIE51bWJlcgorSW50ZXJuYWwg
cHJvcGVydGllczoKKyAgYm91bmRBcmdzIG9iamVjdCBBcnJheQorICBib3VuZFRoaXMgb2JqZWN0
IE9iamVjdAorICB0YXJnZXRGdW5jdGlvbiBmdW5jdGlvbiBmdW5jdGlvbiBOdW1iZXIoKSB7Cisg
ICAgW25hdGl2ZSBjb2RlXQorfQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
cnVudGltZS9nZXRQcm9wZXJ0aWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcnVudGlt
ZS9nZXRQcm9wZXJ0aWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQ0ZmUyMzk2Njk1MGFhMjY4MDc4Y2I4
ODEyNDE4ZmNjYWZiMWRlNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9ydW50aW1lL2dldFByb3BlcnRpZXMuaHRtbApAQCAtMCwwICsxLDkzIEBACis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vLi4vaHR0cC90ZXN0
cy9pbnNwZWN0b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIHZhciBzdWl0ZSA9IG5ldyBJbnNwZWN0b3JUZXN0
LkFzeW5jVGVzdFN1aXRlKCJSdW50aW1lLmdldFByb3BlcnRpZXMiKTsKKworICAgIGFkZEdldFBy
b3BlcnRpZXNUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDaGVja1Byb3BlcnRpZXNPZldyYXBw
ZXJPYmplY3QiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHByb3BlcnRpZXMgb2YgYE9i
amVjdCg1KWAuIiwKKyAgICAgICAgZXhwcmVzc2lvbjogIihmdW5jdGlvbigpe3ZhciByID0gT2Jq
ZWN0KDUpOyByLmZvbyA9ICdjYXQnO3JldHVybiByO30pKCkiLAorICAgIH0pOworCisgICAgYWRk
R2V0UHJvcGVydGllc1Rlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkNoZWNrUHJvcGVydGllc09m
QXJyYXkiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHByb3BlcnRpZXMgb2YgYFsncmVk
JywgJ2dyZWVuJywgJ2JsdWUnXWAuIiwKKyAgICAgICAgZXhwcmVzc2lvbjogIlsncmVkJywgJ2dy
ZWVuJywgJ2JsdWUnXSIsCisgICAgfSk7CisKKyAgICBhZGRHZXRQcm9wZXJ0aWVzVGVzdENhc2Uo
eworICAgICAgICBuYW1lOiAiQ2hlY2tQcm9wZXJ0aWVzT2ZCb3VuZENvbnN0cnVjdG9yIiwKKyAg
ICAgICAgZGVzY3JpcHRpb246ICJDaGVjayBwcm9wZXJ0aWVzIG9mIGEgYm91bmQgZnVuY3Rpb24g
KGhhcyBhIGJ1bmNoIG9mIGludGVybmFsIHByb3BlcnRpZXMpLiIsCisgICAgICAgIGV4cHJlc3Np
b246ICJOdW1iZXIuYmluZCh7fSwgNSkiLAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENh
c2VzQW5kRmluaXNoKCk7CisKKyAgICBmdW5jdGlvbiBhZGRHZXRQcm9wZXJ0aWVzVGVzdENhc2Uo
YXJncykgeworICAgICAgICB2YXIge25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9ufSA9IGFy
Z3M7CisKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwKKyAg
ICAgICAgICAgIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgdGVzdDogZnVuY3Rpb24ocmVzb2x2
ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkV2YWx1YXRp
bmcgZXhwcmVzc2lvbjogIiArIGV4cHJlc3Npb24pOworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXdhaXRDb21tYW5kKHsKKyAgICAgICAgICAgICAgICAgICAgbWV0aG9kOiAiUnVudGlt
ZS5ldmFsdWF0ZSIsCisgICAgICAgICAgICAgICAgICAgIHBhcmFtczoge2V4cHJlc3Npb259Cisg
ICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAudGhlbihmdW5jdGlvbihyZXBseSkg
eworICAgICAgICAgICAgICAgICAgICB2YXIgb2JqZWN0SWQgPSByZXBseS5yZXN1bHQub2JqZWN0
SWQ7CisgICAgICAgICAgICAgICAgICAgIGlmIChvYmplY3RJZCA9PT0gdW5kZWZpbmVkKQorICAg
ICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJvYmplY3RJZCBpcyBleHBlY3Rl
ZCIpOworCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBJbnNwZWN0b3JUZXN0LmF3YWl0Q29t
bWFuZCh7CisgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2Q6ICJSdW50aW1lLmdldFByb3Bl
cnRpZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zOiB7b2JqZWN0SWQsIG93blBy
b3BlcnRpZXM6IHRydWV9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAg
IH0pCisgICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24ocmVwbHkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgZHVtcEdldFByb3BlcnRpZXNSZXN1bHQocmVwbHkpOworICAgICAgICAgICAgICAg
ICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAuY2F0
Y2gocmVqZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfQorCisgICAgLy8g
QSBoZWxwZXIgZnVuY3Rpb24gdGhhdCBkdW1wcyBvYmplY3QgcHJvcGVydGllcyBhbmQgaW50ZXJu
YWwgcHJvcGVydGllcyBpbiBzb3J0ZWQgb3JkZXIuCisgICAgZnVuY3Rpb24gZHVtcEdldFByb3Bl
cnRpZXNSZXN1bHQocHJvdG9jb2xSZXN1bHQpIHsKKyAgICAgICAgdmFyIHByb3BlcnRpZXMgPSBw
cm90b2NvbFJlc3VsdC5yZXN1bHQ7CisgICAgICAgIGlmIChwcm9wZXJ0aWVzKSB7CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUHJvcGVydGllczoiKTsKKyAgICAgICAgICAgIHByb3Bl
cnRpZXMuc29ydChOYW1lZFRoaW5nQ29tcGFyYXRvcik7CisgICAgICAgICAgICBwcm9wZXJ0aWVz
Lm1hcChkdW1wU2luZ2xlUHJvcGVydHkpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIGludGVy
bmFsUHJvcGVydGllcyA9IHByb3RvY29sUmVzdWx0LmludGVybmFsUHJvcGVydGllczsKKyAgICAg
ICAgaWYgKGludGVybmFsUHJvcGVydGllcykgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkludGVybmFsIHByb3BlcnRpZXM6Iik7CisgICAgICAgICAgICBpbnRlcm5hbFByb3BlcnRp
ZXMuc29ydChOYW1lZFRoaW5nQ29tcGFyYXRvcik7CisgICAgICAgICAgICBpbnRlcm5hbFByb3Bl
cnRpZXMubWFwKGR1bXBTaW5nbGVQcm9wZXJ0eSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5j
dGlvbiBkdW1wU2luZ2xlUHJvcGVydHkocHJvcGVydHkpIHsKKyAgICAgICAgICAgIHZhciB7bmFt
ZSwgdmFsdWV9ID0gcHJvcGVydHk7CisgICAgICAgICAgICBpZiAodmFsdWUpCisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiAgIiArIG5hbWUgKyAiICIgKyB2YWx1ZS50eXBlICsg
IiAiICsgKHZhbHVlLnZhbHVlIHx8IHZhbHVlLmRlc2NyaXB0aW9uKSk7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiAgIiArIG5hbWUpOworICAg
ICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gTmFtZWRUaGluZ0NvbXBhcmF0b3IobzEsIG8yKSB7
CisgICAgICAgICAgICByZXR1cm4gbzEubmFtZS5sb2NhbGVDb21wYXJlKG8yLm5hbWUpOworICAg
ICAgICB9CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbkxvYWQ9InJ1blRl
c3QoKSI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvdGVzdC1oYXJuZXNzLXRyaXZpYWxseS13b3Jrcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdGVzdC1oYXJuZXNzLXRyaXZpYWxseS13b3Jrcy1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYzZWNiMGFmOGMzNzZkODIwZGI4NWJjZWE1Y2Zk
YzFlZDA4YWU3ODUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Rlc3QtaGFybmVzcy10cml2aWFsbHktd29ya3MtZXhw
ZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1UZXN0cyB0aGF0IHRoZSB0
ZXN0IGhhcm5lc3MgZm9yIG5vbi1zdHViIGluc3BlY3RvciB0ZXN0cyBjYW4gbG9hZCBhbmQgcnVu
IGEgdGVzdC4KLQotTG9nZ2VkIGEgbWVzc2FnZSBmcm9tIHRoZSBpbnNwZWN0b3IgcGFnZS4KLQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Rlc3QtaGFybmVzcy10cml2aWFsbHkt
d29ya3MuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci90ZXN0LWhhcm5lc3MtdHJpdmlhbGx5
LXdvcmtzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ3NTM1NjIyMjhmMTUy
MTZhMzI5MTE5MThiN2NlMjQ3NjcxM2NlNzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Rlc3QtaGFybmVzcy10cml2
aWFsbHktd29ya3MuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9odHRwL3Rlc3Rz
L2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlw
dD4KLWZ1bmN0aW9uIHRlc3QoKQotewotICAgIEluc3BlY3RvclRlc3QubG9nKCJMb2dnZWQgYSBt
ZXNzYWdlIGZyb20gdGhlIGluc3BlY3RvciBwYWdlLiIpOwotICAgIEluc3BlY3RvclRlc3QuY29t
cGxldGVUZXN0KCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVz
dCgpIj4KLTxwPlRlc3RzIHRoYXQgdGhlIHRlc3QgaGFybmVzcyBmb3Igbm9uLXN0dWIgaW5zcGVj
dG9yIHRlc3RzIGNhbiBsb2FkIGFuZCBydW4gYSB0ZXN0LjwvcD4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL2FzeW5jLXRlc3Qt
c3VpdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvYXN5
bmMtdGVzdC1zdWl0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWEzM2E3Nzg1NmY0ODUyMjZk
MGRmOTk2MGNkYjk0Njk1NDE3OGJkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci91bml0LXRlc3RzL2FzeW5jLXRlc3Qtc3VpdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMzcgQEAKK1BBU1M6IGluc3RhbnRpYXRpbmcgQXN5bmNUZXN0U3VpdGUgcmVxdWlyZXMgbmFt
ZSBhcmd1bWVudC4KK1BBU1M6IGluc3RhbnRpYXRpbmcgQXN5bmNUZXN0U3VpdGUgcmVxdWlyZXMg
c3RyaW5nIG5hbWUgYXJndW1lbnQuCitQQVNTOiBzaG91bGQgbm90IGJlIGFibGUgdG8gYWRkIGVt
cHR5IHRlc3QgY2FzZS4KK1BBU1M6IHNob3VsZCBub3QgYmUgYWJsZSB0byBhZGQgbm9uLW9iamVj
dCB0ZXN0IGNhc2UuCitQQVNTOiB0ZXN0IGNhc2Ugc2hvdWxkIHJlcXVpcmUgc3RyaW5nIG5hbWUu
CitQQVNTOiB0ZXN0IGNhc2Ugc2hvdWxkIHJlcXVpcmUgdGVzdCBmdW5jdGlvbi4KK1BBU1M6IHNo
b3VsZCBub3QgYmUgYWJsZSB0byBydW4gZW1wdHkgdGVzdCBzdWl0ZS4KKworPT0gUnVubmluZyB0
ZXN0IHN1aXRlOiBBc3luY1Rlc3RTdWl0ZS5SdW5Ud2ljZVN1aXRlCitQQVNTOiBzaG91bGQgbm90
IGJlIGFibGUgdG8gcnVuIGEgdGVzdCBzdWl0ZSB0d2ljZS4KKy0tIFJ1bm5pbmcgdGVzdCBjYXNl
OiBEdW1teVRlc3QwCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQXN5bmNUZXN0U3VpdGUuU2Vx
dWVudGlhbEV4ZWN1dGlvbgorUEFTUzogQXN5bmNUZXN0U3VpdGUuUnVuVGVzdENhc2VzKCkgc2hv
dWxkIHJldHVybiBhIFByb21pc2UuCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRHVtbXlUZXN0MQor
LS0gUnVubmluZyB0ZXN0IGNhc2U6IER1bW15VGVzdDIKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBE
dW1teVRlc3QzCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRmFpbGluZ1Rlc3Q0CishISBFWENFUFRJ
T046IFtvYmplY3QgT2JqZWN0XQorUEFTUzogUHJvbWlzZSBmcm9tIHNlcXVlbnRpYWxFeGVjdXRp
b25TdWl0ZS5ydW5UZXN0Q2FzZXMoKSBzaG91bGQgcmVqZWN0IHdoZW4gYSB0ZXN0IGNhc2UgZmFp
bHMuCitQQVNTOiBQcm9taXNlIGZyb20gc2VxdWVudGlhbEV4ZWN1dGlvblN1aXRlLnJ1blRlc3RD
YXNlcygpIHNob3VsZCByZWplY3Qgd2l0aG91dCBhbHRlcmluZyBpdHMgcmVzdWx0IHZhbHVlLgor
UEFTUzogc2VxdWVudGlhbEV4ZWN1dGlvblN1aXRlIHNob3VsZCBoYXZlIGV4ZWN1dGVkIGZvdXIg
dGVzdHMuCitQQVNTOiBzZXF1ZW50aWFsRXhlY3V0aW9uU3VpdGUgc2hvdWxkIGhhdmUgcGFzc2Vk
IHRocmVlIHRlc3RzLgorUEFTUzogc2VxdWVudGlhbEV4ZWN1dGlvblN1aXRlIHNob3VsZCBoYXZl
IGZhaWxlZCAxIHRlc3QuCitQQVNTOiBzZXF1ZW50aWFsRXhlY3V0aW9uU3VpdGUgc2hvdWxkIGhh
dmUgc2tpcHBlZCB6ZXJvIHRlc3RzLgorCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IEFzeW5jVGVz
dFN1aXRlLkFib3J0T25GYWlsdXJlCistLSBSdW5uaW5nIHRlc3QgY2FzZTogUGFzc2luZ1Rlc3Q1
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogRmFpbGluZ1Rlc3Q2CishISBFWENFUFRJT046IHsidG9r
ZW4iOjY2Nn0KK1BBU1M6IFByb21pc2UgZnJvbSBhYm9ydE9uRmFpbHVyZVN1aXRlLnJ1blRlc3RD
YXNlcygpIHNob3VsZCByZWplY3Qgd2hlbiBhIHRlc3QgY2FzZSBmYWlscy4KK1BBU1M6IFByb21p
c2UgZnJvbSBhYm9ydE9uRmFpbHVyZVN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3Qg
d2l0aG91dCBhbHRlcmluZyBpdHMgcmVzdWx0IHZhbHVlLgorUEFTUzogYWJvcnRPbkZhaWx1cmVT
dWl0ZSBzaG91bGQgaGF2ZSBleGVjdXRlZCB0d28gdGVzdHMuCitQQVNTOiBhYm9ydE9uRmFpbHVy
ZVN1aXRlIHNob3VsZCBoYXZlIHBhc3NlZCBvbmUgdGVzdC4KK1BBU1M6IGFib3J0T25GYWlsdXJl
U3VpdGUgc2hvdWxkIGhhdmUgZmFpbGVkIG9uZSB0ZXN0LgorUEFTUzogYWJvcnRPbkZhaWx1cmVT
dWl0ZSBzaG91bGQgaGF2ZSBza2lwcGVkIG9uZSB0ZXN0LgorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9hc3luYy10ZXN0LXN1aXRlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9hc3luYy10ZXN0LXN1aXRlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTI1ZGU0MjIzZjI4MTJlZjRiOGE1YTZhNDkyYTUzOTlkYzAwYjU2OAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL2FzeW5jLXRlc3Qtc3VpdGUu
aHRtbApAQCAtMCwwICsxLDE3OSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9wcm90b2Nv
bC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICB0
cnkgeworICAgICAgICBuZXcgSW5zcGVjdG9yVGVzdC5Bc3luY1Rlc3RTdWl0ZSgpOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDogaW5zdGFudGlhdGluZyBBc3luY1Rlc3RTdWl0ZSBy
ZXF1aXJlcyBuYW1lIGFyZ3VtZW50LiIpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIlBBU1M6IGluc3RhbnRpYXRpbmcgQXN5bmNUZXN0U3VpdGUgcmVxdWly
ZXMgbmFtZSBhcmd1bWVudC4iKTsKKyAgICB9CisKKyAgICB0cnkgeworICAgICAgICBuZXcgSW5z
cGVjdG9yVGVzdC5Bc3luY1Rlc3RTdWl0ZSh7fSk7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJGQUlMOiBpbnN0YW50aWF0aW5nIEFzeW5jVGVzdFN1aXRlIHJlcXVpcmVzIHN0cmluZyBuYW1l
IGFyZ3VtZW50LiIpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIlBBU1M6IGluc3RhbnRpYXRpbmcgQXN5bmNUZXN0U3VpdGUgcmVxdWlyZXMgc3RyaW5nIG5h
bWUgYXJndW1lbnQuIik7CisgICAgfQorCisgICAgdmFyIGJhZEFyZ3NTdWl0ZSA9IG5ldyBJbnNw
ZWN0b3JUZXN0LkFzeW5jVGVzdFN1aXRlKCJkdW1teSIpOworICAgIHRyeSB7CisgICAgICAgIGJh
ZEFyZ3NTdWl0ZS5hZGRUZXN0Q2FzZSgpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJ
TDogc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGFkZCBlbXB0eSB0ZXN0IGNhc2UuIik7CisgICAgfSBj
YXRjaCAoZSkgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogc2hvdWxkIG5vdCBi
ZSBhYmxlIHRvIGFkZCBlbXB0eSB0ZXN0IGNhc2UuIik7CisgICAgfQorICAgIHRyeSB7CisgICAg
ICAgIGJhZEFyZ3NTdWl0ZS5hZGRUZXN0Q2FzZSgic3RyaW5nIik7CisgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJGQUlMOiBzaG91bGQgbm90IGJlIGFibGUgdG8gYWRkIG5vbi1vYmplY3QgdGVz
dCBjYXNlLiIpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
IlBBU1M6IHNob3VsZCBub3QgYmUgYWJsZSB0byBhZGQgbm9uLW9iamVjdCB0ZXN0IGNhc2UuIik7
CisgICAgfQorICAgIHRyeSB7CisgICAgICAgIGJhZEFyZ3NTdWl0ZS5hZGRUZXN0Q2FzZSh7Cisg
ICAgICAgICAgICBuYW1lOiB7fSwKKyAgICAgICAgICAgIHRlc3Q6IGZ1bmN0aW9uKCkge30sCisg
ICAgICAgIH0pOworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDogdGVzdCBjYXNlIHNo
b3VsZCByZXF1aXJlIHN0cmluZyBuYW1lLiIpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coIlBBU1M6IHRlc3QgY2FzZSBzaG91bGQgcmVxdWlyZSBzdHJpbmcg
bmFtZS4iKTsKKyAgICB9CisgICAgdHJ5IHsKKyAgICAgICAgYmFkQXJnc1N1aXRlLmFkZFRlc3RD
YXNlKHsKKyAgICAgICAgICAgIG5hbWU6ICJmb28iLAorICAgICAgICAgICAgdGVzdDogbnVsbCwK
KyAgICAgICAgfSk7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiB0ZXN0IGNhc2Ug
c2hvdWxkIHJlcXVpcmUgdGVzdCBmdW5jdGlvbi4iKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiB0ZXN0IGNhc2Ugc2hvdWxkIHJlcXVpcmUgdGVz
dCBmdW5jdGlvbi4iKTsKKyAgICB9CisKKyAgICB2YXIgcnVuRW1wdHlTdWl0ZSA9IG5ldyBJbnNw
ZWN0b3JUZXN0LkFzeW5jVGVzdFN1aXRlKCJBc3luY1Rlc3RTdWl0ZS5SdW5FbXB0eVN1aXRlIik7
CisgICAgdHJ5IHsKKyAgICAgICAgcnVuRW1wdHlTdWl0ZS5ydW5UZXN0Q2FzZXMoKTsKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6IHNob3VsZCBub3QgYmUgYWJsZSB0byBydW4gZW1w
dHkgdGVzdCBzdWl0ZS4iKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCJQQVNTOiBzaG91bGQgbm90IGJlIGFibGUgdG8gcnVuIGVtcHR5IHRlc3Qgc3VpdGUu
Iik7CisgICAgfQorCisgICAgdmFyIHJ1blR3aWNlU3VpdGUgPSBuZXcgSW5zcGVjdG9yVGVzdC5B
c3luY1Rlc3RTdWl0ZSgiQXN5bmNUZXN0U3VpdGUuUnVuVHdpY2VTdWl0ZSIpOworICAgIHJ1blR3
aWNlU3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiRHVtbXlUZXN0MCIsCisgICAg
ICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGhhdCBhIHN1aXRlIGNhbid0IHJ1biBtb3JlIHRoYW4g
b25jZS4iLAorICAgICAgICB0ZXN0OiBmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAg
ICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgdmFyIHJlc3VsdCA9
IHJ1blR3aWNlU3VpdGUucnVuVGVzdENhc2VzKCk7CisgICAgdHJ5IHsKKyAgICAgICAgLy8gVGVz
dCBjYXNlcyB3b24ndCBydW4gaW4gdGhpcyBldmVudCBsb29wOyB0aGlzIGNhbGwgc2hvdWxkIHN0
aWxsIHRocm93LgorICAgICAgICAvLyBMYXRlciB0ZXN0cyBhcmUgY2hhaW5lZCB0byB0aGlzIHN1
aXRlIHRvIGF2b2lkIG5vbmRldGVybWluaXNtLgorICAgICAgICBydW5Ud2ljZVN1aXRlLnJ1blRl
c3RDYXNlcygpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDogc2hvdWxkIG5vdCBi
ZSBhYmxlIHRvIHJ1biBhIHRlc3Qgc3VpdGUgdHdpY2UuIik7CisgICAgfSBjYXRjaCAoZSkgewor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogc2hvdWxkIG5vdCBiZSBhYmxlIHRvIHJ1
biBhIHRlc3Qgc3VpdGUgdHdpY2UuIik7CisgICAgfQorCisgICAgdmFyIHJlamVjdFRva2VuID0g
eyJ0b2tlbiI6IDY2Nn07CisgICAgdmFyIHRocm93bkVycm9yID0gbmV3IEVycm9yKHJlamVjdFRv
a2VuKTsKKworICAgIHZhciBzZXF1ZW50aWFsRXhlY3V0aW9uU3VpdGUgPSBuZXcgSW5zcGVjdG9y
VGVzdC5Bc3luY1Rlc3RTdWl0ZSgiQXN5bmNUZXN0U3VpdGUuU2VxdWVudGlhbEV4ZWN1dGlvbiIp
OworICAgIHNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5h
bWU6ICJEdW1teVRlc3QxIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0ZXN0IGNhc2Ug
ZXhlY3V0aW9uIG9yZGVyLiIsCisgICAgICAgIHRlc3Q6IGZ1bmN0aW9uKHJlc29sdmUsIHJlamVj
dCkgeworICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9CisgICAgfSk7CisgICAgc2Vx
dWVudGlhbEV4ZWN1dGlvblN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkR1bW15
VGVzdDIiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRlc3QgY2FzZSBleGVjdXRpb24g
b3JkZXIuIiwKKyAgICAgICAgdGVzdDogZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAg
ICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0KKyAgICB9KTsKKyAgICBzZXF1ZW50aWFsRXhl
Y3V0aW9uU3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiRHVtbXlUZXN0MyIsCisg
ICAgICAgIGRlc2NyaXB0aW9uOiAiQ2hlY2sgdGVzdCBjYXNlIGV4ZWN1dGlvbiBvcmRlci4iLAor
ICAgICAgICB0ZXN0OiBmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIHJl
c29sdmUoKTsKKyAgICAgICAgfQorICAgIH0pOworICAgIHNlcXVlbnRpYWxFeGVjdXRpb25TdWl0
ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJGYWlsaW5nVGVzdDQiLAorICAgICAgICBk
ZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgdGVzdCBmYWlscyBieSB0aHJvd2luZyBhbiBFcnJvciBp
bnN0YW5jZS4iLAorICAgICAgICB0ZXN0OiBmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAg
ICAgICAgICAgIHRocm93IHRocm93bkVycm9yOworICAgICAgICB9CisgICAgfSk7CisKKyAgICB2
YXIgYWJvcnRPbkZhaWx1cmVTdWl0ZSA9IG5ldyBJbnNwZWN0b3JUZXN0LkFzeW5jVGVzdFN1aXRl
KCJBc3luY1Rlc3RTdWl0ZS5BYm9ydE9uRmFpbHVyZSIpOworICAgIGFib3J0T25GYWlsdXJlU3Vp
dGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiUGFzc2luZ1Rlc3Q1IiwKKyAgICAgICAg
ZGVzY3JpcHRpb246ICJUaGlzIHRlc3QgaXMgYSBkdW1teS4iLAorICAgICAgICB0ZXN0OiBmdW5j
dGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAg
fQorICAgIH0pOworICAgIGFib3J0T25GYWlsdXJlU3VpdGUuYWRkVGVzdENhc2UoeworICAgICAg
ICBuYW1lOiAiRmFpbGluZ1Rlc3Q2IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJUaGlzIHRlc3Qg
c2hvdWxkIGZhaWwgYnkgZXhwbGljaXRseSBjYWxsaW5nIHRoZSBgcmVqZWN0YCBjYWxsYmFjay4i
LAorICAgICAgICB0ZXN0OiBmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAg
IHJlamVjdChyZWplY3RUb2tlbik7CisgICAgICAgIH0KKyAgICB9KTsKKyAgICBhYm9ydE9uRmFp
bHVyZVN1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIlBhc3NpbmdUZXN0NyIsCisg
ICAgICAgIGRlc2NyaXB0aW9uOiAiVGhpcyB0ZXN0IHNob3VsZCBub3QgZXhlY3V0ZWQgd2hlbiB0
aGUgcHJlY2VkaW5nIHRlc3QgZmFpbHMuIiwKKyAgICAgICAgdGVzdDogZnVuY3Rpb24ocmVzb2x2
ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0KKyAgICB9KTsK
KworICAgIHJlc3VsdCA9IHJlc3VsdC50aGVuKGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgcHJv
bWlzZSA9IHNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZS5ydW5UZXN0Q2FzZXMoKTsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnQocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSwgIkFzeW5jVGVz
dFN1aXRlLlJ1blRlc3RDYXNlcygpIHNob3VsZCByZXR1cm4gYSBQcm9taXNlLiIpOworICAgICAg
ICByZXR1cm4gcHJvbWlzZTsKKyAgICB9KTsKKyAgICByZXN1bHQgPSByZXN1bHQudGhlbihmdW5j
dGlvbiByZXNvbHZlZCgpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6IFByb21p
c2UgZnJvbSBzZXF1ZW50aWFsRXhlY3V0aW9uU3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIHJl
amVjdCB3aGVuIGEgdGVzdCBjYXNlIGZhaWxzLiIpOworICAgICAgICByZXR1cm4gUHJvbWlzZS5y
ZXNvbHZlKCk7IC8vIENvbnRpbnVlIHRoaXMgdGVzdC4KKyAgICB9LCBmdW5jdGlvbiByZWplY3Rl
ZChlKSB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiBQcm9taXNlIGZyb20gc2Vx
dWVudGlhbEV4ZWN1dGlvblN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3Qgd2hlbiBh
IHRlc3QgY2FzZSBmYWlscy4iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZSA9PT0g
dGhyb3duRXJyb3IsICJQcm9taXNlIGZyb20gc2VxdWVudGlhbEV4ZWN1dGlvblN1aXRlLnJ1blRl
c3RDYXNlcygpIHNob3VsZCByZWplY3Qgd2l0aG91dCBhbHRlcmluZyBpdHMgcmVzdWx0IHZhbHVl
LiIpOworCisgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHNlcXVlbnRpYWxFeGVjdXRpb25T
dWl0ZS5ydW5Db3VudCA9PT0gNCwgInNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZSBzaG91bGQgaGF2
ZSBleGVjdXRlZCBmb3VyIHRlc3RzLiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChz
ZXF1ZW50aWFsRXhlY3V0aW9uU3VpdGUucGFzc0NvdW50ID09PSAzLCAic2VxdWVudGlhbEV4ZWN1
dGlvblN1aXRlIHNob3VsZCBoYXZlIHBhc3NlZCB0aHJlZSB0ZXN0cy4iKTsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5hc3NlcnQoc2VxdWVudGlhbEV4ZWN1dGlvblN1aXRlLmZhaWxDb3VudCA9PT0g
MSwgInNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZSBzaG91bGQgaGF2ZSBmYWlsZWQgMSB0ZXN0LiIp
OworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChzZXF1ZW50aWFsRXhlY3V0aW9uU3VpdGUu
c2tpcENvdW50ID09PSAwLCAic2VxdWVudGlhbEV4ZWN1dGlvblN1aXRlIHNob3VsZCBoYXZlIHNr
aXBwZWQgemVybyB0ZXN0cy4iKTsKKyAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOyAv
LyBDb250aW51ZSB0aGlzIHRlc3QuCisgICAgfSk7CisKKyAgICByZXN1bHQgPSByZXN1bHQudGhl
bihmdW5jdGlvbigpIHsKKyAgICAgICAgcmV0dXJuIGFib3J0T25GYWlsdXJlU3VpdGUucnVuVGVz
dENhc2VzKCk7CisgICAgfSkudGhlbihmdW5jdGlvbiByZXNvbHZlZCgpIHsKKyAgICAgICAgSW5z
cGVjdG9yVGVzdC5sb2coIkZBSUw6IFByb21pc2UgZnJvbSBhYm9ydE9uRmFpbHVyZVN1aXRlLnJ1
blRlc3RDYXNlcygpIHNob3VsZCByZWplY3Qgd2hlbiBhIHRlc3QgY2FzZSBmYWlscy4iKTsKKyAg
ICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOyAvLyBDb250aW51ZSB0aGlzIHRlc3QuCisg
ICAgfSwgZnVuY3Rpb24gcmVqZWN0ZWQoZSkgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
UEFTUzogUHJvbWlzZSBmcm9tIGFib3J0T25GYWlsdXJlU3VpdGUucnVuVGVzdENhc2VzKCkgc2hv
dWxkIHJlamVjdCB3aGVuIGEgdGVzdCBjYXNlIGZhaWxzLiIpOworICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydChlID09PSByZWplY3RUb2tlbiwgIlByb21pc2UgZnJvbSBhYm9ydE9uRmFpbHVy
ZVN1aXRlLnJ1blRlc3RDYXNlcygpIHNob3VsZCByZWplY3Qgd2l0aG91dCBhbHRlcmluZyBpdHMg
cmVzdWx0IHZhbHVlLiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhYm9ydE9uRmFp
bHVyZVN1aXRlLnJ1bkNvdW50ID09PSAyLCAiYWJvcnRPbkZhaWx1cmVTdWl0ZSBzaG91bGQgaGF2
ZSBleGVjdXRlZCB0d28gdGVzdHMuIik7CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGFi
b3J0T25GYWlsdXJlU3VpdGUucGFzc0NvdW50ID09PSAxLCAiYWJvcnRPbkZhaWx1cmVTdWl0ZSBz
aG91bGQgaGF2ZSBwYXNzZWQgb25lIHRlc3QuIik7CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0KGFib3J0T25GYWlsdXJlU3VpdGUuZmFpbENvdW50ID09PSAxLCAiYWJvcnRPbkZhaWx1cmVT
dWl0ZSBzaG91bGQgaGF2ZSBmYWlsZWQgb25lIHRlc3QuIik7CisgICAgICAgIEluc3BlY3RvclRl
c3QuYXNzZXJ0KGFib3J0T25GYWlsdXJlU3VpdGUuc2tpcENvdW50ID09PSAxLCAiYWJvcnRPbkZh
aWx1cmVTdWl0ZSBzaG91bGQgaGF2ZSBza2lwcGVkIG9uZSB0ZXN0LiIpOworCisgICAgICAgIHJl
dHVybiBQcm9taXNlLnJlc29sdmUoKTsgLy8gQ29udGludWUgdGhpcyB0ZXN0LgorICAgIH0pOwor
CisgICAgLy8gVGhpcyB3aWxsIGZpbmlzaCB0aGUgdGVzdCB3aGV0aGVyIHRoZSBjaGFpbiB3YXMg
cmVzb2x2ZWQgb3IgcmVqZWN0ZWQuCisgICAgcmVzdWx0ID0gcmVzdWx0LnRoZW4oZnVuY3Rpb24o
KSB7IEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7IH0pOworfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbkxvYWQ9InJ1blRlc3QoKSI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9ldmVudC1saXN0ZW5lci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9ldmVudC1saXN0ZW5l
ci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjE0MGMwODllOTllMmMwNTg0MGFjMjM4NGMwOWNl
Njc3YmMzODQxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0
LXRlc3RzL2V2ZW50LWxpc3RlbmVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitUZXN0
aW5nIGJhc2ljIGZ1bmN0aW9uYWxpdHkgb2YgV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXIuCisK
K0Nvbm5lY3RpbmcgdGhlIGxpc3RlbmVyLgorSW52b2tlZCBjYWxsYmFjayBmb3Iga2Fib29tIGV2
ZW50LgorSW52b2tlZCBjYWxsYmFjayBmb3Iga2Fib29tIGV2ZW50LgorRGlzY29ubmVjdGluZyB0
aGUgbGlzdGVuZXIuCitDb25uZWN0aW5nIHRoZSBsaXN0ZW5lci4KK0ludm9rZWQgY2FsbGJhY2sg
Zm9yIGthYm9vbSBldmVudC4KK0Rpc2Nvbm5lY3RpbmcgdGhlIGxpc3RlbmVyLgorQ29ubmVjdGlu
ZyB0aGUgbGlzdGVuZXIuCitEaXNjb25uZWN0aW5nIHRoZSBsaXN0ZW5lci4KK0Nvbm5lY3Rpbmcg
dGhlIHNpbmdsZS1maXJlIGxpc3RlbmVyLgorSW52b2tlZCBjYWxsYmFjayBmb3Iga2Fib29tIGV2
ZW50LgorRGlzY29ubmVjdGluZyB0aGUgc2luZ2xlLWZpcmUgbGlzdGVuZXIuCitJbnZva2VkIGNh
bGxiYWNrIGZvciBrYWJvb20gZXZlbnQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci91bml0LXRlc3RzL2V2ZW50LWxpc3RlbmVyLXNldC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9ldmVudC1saXN0ZW5lci1zZXQtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjgxMDk4ZjM0ZmM3NTJmYmI2NjU3NGRmOTY3OTZhZWEwZTRhNWM5ZDAKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9ldmVudC1s
aXN0ZW5lci1zZXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjUgQEAKK1Rlc3RpbmcgYmFzaWMg
ZnVuY3Rpb25hbGl0eSBvZiBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lclNldC4KKworUmVnaXN0
ZXJpbmcgbGlzdGVuZXJzLgorSW5zdGFsbGluZyBsaXN0ZW5lcnMuCitEaXNwYXRjaGluZyBldmVu
dHMuCitJbnZva2VkIGNhbGxiYWNrIGZvciBmb28gZXZlbnQuCitJbnZva2VkIGNhbGxiYWNrIGZv
ciBiYXIgZXZlbnQuCitJbnZva2VkIGNhbGxiYWNrIGZvciBiYXogZXZlbnQuCitVbmluc3RhbGxp
bmcgYW5kIGRpc2Nvbm5lY3RpbmcgbGlzdGVuZXJzLgorUmVnaXN0ZXJpbmcgbGlzdGVuZXJzLgor
RGlzcGF0Y2hpbmcgZXZlbnRzLgorSW52b2tlZCBjYWxsYmFjayBmb3IgZm9vIGV2ZW50LgorSW52
b2tlZCBjYWxsYmFjayBmb3IgYmFyIGV2ZW50LgorSW52b2tlZCBjYWxsYmFjayBmb3IgYmF6IGV2
ZW50LgorVW5pbnN0YWxsaW5nIGxpc3RlbmVycy4KK0luc3RhbGxpbmcgbGlzdGVuZXJzLgorRGlz
cGF0Y2hpbmcgZXZlbnRzLgorSW52b2tlZCBjYWxsYmFjayBmb3IgZm9vIGV2ZW50LgorSW52b2tl
ZCBjYWxsYmFjayBmb3IgYmFyIGV2ZW50LgorSW52b2tlZCBjYWxsYmFjayBmb3IgYmF6IGV2ZW50
LgorVW5yZWdpc3RlcmluZyBldmVyeXRoaW5nLgorRGlzcGF0Y2hpbmcgZXZlbnRzLgorVW5pbnRh
bGxpbmcgYW5kIGRpc2Nvbm5lY3RpbmcgbGlzdGVuZXJzLgorRGlzcGF0Y2hpbmcgZXZlbnRzLgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9ldmVudC1saXN0
ZW5lci1zZXQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL2V2ZW50LWxp
c3RlbmVyLXNldC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1MWViYmRmYjE4ZDY5ZTNiMDY0NTJkNjM4ZTAy
NDlhMTZjY2Q0YjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5p
dC10ZXN0cy9ldmVudC1saXN0ZW5lci1zZXQuaHRtbApAQCAtMCwwICsxLDExNyBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgY29uc3QgRm9vRXZlbnQgPSAiZm9vIjsKKyAgICBj
b25zdCBCYXJFdmVudCA9ICJiYXIiOworICAgIGNvbnN0IEJhekV2ZW50ID0gImJheiI7CisgICAg
dmFyIGVtaXR0ZXIxID0gbmV3IFdlYkluc3BlY3Rvci5PYmplY3QoKTsKKyAgICB2YXIgZW1pdHRl
cjIgPSBuZXcgV2ViSW5zcGVjdG9yLk9iamVjdCgpOworICAgIHZhciBjb250ZXh0MSA9IG5ldyBX
ZWJJbnNwZWN0b3IuT2JqZWN0KCk7CisgICAgdmFyIGNvbnRleHQyID0gbmV3IFdlYkluc3BlY3Rv
ci5PYmplY3QoKTsKKyAgICB2YXIgZGF0YTEgPSBbMSwgMiwgM107CisgICAgdmFyIGRhdGEyID0g
WzQsIDYsIDhdOworCisgICAgZnVuY3Rpb24gZm9vQ2FsbGJhY2soZXZlbnQpCisgICAgeworICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCh0aGlzID09PSBjb250ZXh0MSwgIkNhbGxiYWNrIGlu
dm9rZWQgd2l0aCB3cm9uZyB8dGhpc3wgYmluZGluZy4iKTsKKyAgICAgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnQoZXZlbnQudGFyZ2V0ID09PSBlbWl0dGVyMSwgIkNhbGxiYWNrIGludm9rZWQgd2l0
aCB3cm9uZyBldmVudCBlbWl0dGVyLiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChl
dmVudC5kYXRhID09PSBkYXRhMSwgIkNhbGxiYWNrIGludm9rZWQgd2l0aCB3cm9uZyBldmVudCBk
YXRhLiIpOworCisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJJbnZva2VkIGNhbGxiYWNrIGZv
ciBmb28gZXZlbnQuIik7CisgICAgfQorCisgICAgZnVuY3Rpb24gYmFyQ2FsbGJhY2soZXZlbnQp
CisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCh0aGlzID09PSBjb250ZXh0MSwg
IkNhbGxiYWNrIGludm9rZWQgd2l0aCB3cm9uZyB8dGhpc3wgYmluZGluZy4iKTsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnQoZXZlbnQudGFyZ2V0ID09PSBlbWl0dGVyMSwgIkNhbGxiYWNr
IGludm9rZWQgd2l0aCB3cm9uZyBldmVudCBlbWl0dGVyLiIpOworICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFzc2VydChldmVudC5kYXRhID09PSBkYXRhMiwgIkNhbGxiYWNrIGludm9rZWQgd2l0aCB3
cm9uZyBldmVudCBkYXRhLiIpOworCisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJJbnZva2Vk
IGNhbGxiYWNrIGZvciBiYXIgZXZlbnQuIik7CisgICAgfQorCisgICAgZnVuY3Rpb24gYmF6Q2Fs
bGJhY2soZXZlbnQpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCh0aGlzID09
PSBjb250ZXh0MiwgIkNhbGxiYWNrIGludm9rZWQgd2l0aCB3cm9uZyB8dGhpc3wgYmluZGluZy4i
KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZXZlbnQudGFyZ2V0ID09PSBlbWl0dGVy
MiwgIkNhbGxiYWNrIGludm9rZWQgd2l0aCB3cm9uZyBldmVudCBlbWl0dGVyLiIpOworICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFzc2VydChldmVudC5kYXRhID09PSBkYXRhMiwgIkNhbGxiYWNrIGlu
dm9rZWQgd2l0aCB3cm9uZyBldmVudCBkYXRhLiIpOworCisgICAgICAgIEluc3BlY3RvclRlc3Qu
bG9nKCJJbnZva2VkIGNhbGxiYWNrIGZvciBiYXogZXZlbnQuIik7CisgICAgfQorCisgICAgLy8g
VGVzdCBmb3IgbXVsdGlwbGUgZmlyaW5ncyBvZiBsaXN0ZW5lcnMgaW4gdGhlIHNldC4KKworICAg
IHZhciBsaXN0ZW5lclNldCA9IG5ldyBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5lclNldChjb250
ZXh0MSk7CisgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIWVtaXR0ZXIxLmhhc0V2ZW50TGlzdGVu
ZXJzKEZvb0V2ZW50KSwgIkVtaXR0ZXIgc2hvdWxkIG5vdCBoYXZlIGFueSBsaXN0ZW5lcnMuIik7
CisgICAgZW1pdHRlcjEuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKEZvb0V2ZW50LCBkYXRhMSk7
IC8vIFNob3VsZCBub3QgZmlyZSBhbnl0aGluZy4KKworICAgIEluc3BlY3RvclRlc3QubG9nKCJS
ZWdpc3RlcmluZyBsaXN0ZW5lcnMuIik7CisgICAgbGlzdGVuZXJTZXQucmVnaXN0ZXIoZW1pdHRl
cjEsIEZvb0V2ZW50LCBmb29DYWxsYmFjayk7CisgICAgbGlzdGVuZXJTZXQucmVnaXN0ZXIoZW1p
dHRlcjEsIEJhckV2ZW50LCBiYXJDYWxsYmFjayk7CisgICAgbGlzdGVuZXJTZXQucmVnaXN0ZXIo
ZW1pdHRlcjIsIEJhekV2ZW50LCBiYXpDYWxsYmFjaywgY29udGV4dDIpOworICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0KCFlbWl0dGVyMS5oYXNFdmVudExpc3RlbmVycyhGb29FdmVudCksICJFbWl0
dGVyIHNob3VsZCBub3QgaGF2ZSBhIGxpc3RlbmVyLiIpOworICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0KCFlbWl0dGVyMS5oYXNFdmVudExpc3RlbmVycyhCYXJFdmVudCksICJFbWl0dGVyIHNob3Vs
ZCBub3QgaGF2ZSBhIGxpc3RlbmVyLiIpOworICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFlbWl0
dGVyMi5oYXNFdmVudExpc3RlbmVycyhCYXpFdmVudCksICJFbWl0dGVyIHNob3VsZCBub3QgaGF2
ZSBhIGxpc3RlbmVyLiIpOworCisgICAgSW5zcGVjdG9yVGVzdC5sb2coIkluc3RhbGxpbmcgbGlz
dGVuZXJzLiIpOworICAgIGxpc3RlbmVyU2V0Lmluc3RhbGwoKTsKKyAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydChlbWl0dGVyMS5oYXNFdmVudExpc3RlbmVycyhGb29FdmVudCksICJFbWl0dGVyIHNo
b3VsZCBoYXZlIGEgbGlzdGVuZXIuIik7CisgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoZW1pdHRl
cjEuaGFzRXZlbnRMaXN0ZW5lcnMoQmFyRXZlbnQpLCAiRW1pdHRlciBzaG91bGQgaGF2ZSBhIGxp
c3RlbmVyLiIpOworICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGVtaXR0ZXIyLmhhc0V2ZW50TGlz
dGVuZXJzKEJhekV2ZW50KSwgIkVtaXR0ZXIgc2hvdWxkIGhhdmUgYSBsaXN0ZW5lci4iKTsKKwor
ICAgIEluc3BlY3RvclRlc3QubG9nKCJEaXNwYXRjaGluZyBldmVudHMuIik7CisgICAgZW1pdHRl
cjEuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKEZvb0V2ZW50LCBkYXRhMSk7IC8vIFNob3VsZCBm
aXJlLgorICAgIGVtaXR0ZXIxLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhCYXJFdmVudCwgZGF0
YTIpOyAvLyBTaG91bGQgZmlyZS4KKyAgICBlbWl0dGVyMi5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5l
cnMoQmF6RXZlbnQsIGRhdGEyKTsgLy8gU2hvdWxkIGZpcmUuCisgICAgSW5zcGVjdG9yVGVzdC5s
b2coIlVuaW5zdGFsbGluZyBhbmQgZGlzY29ubmVjdGluZyBsaXN0ZW5lcnMuIik7CisgICAgbGlz
dGVuZXJTZXQudW5pbnN0YWxsKHRydWUpOworCisgICAgSW5zcGVjdG9yVGVzdC5sb2coIlJlZ2lz
dGVyaW5nIGxpc3RlbmVycy4iKTsKKyAgICBsaXN0ZW5lclNldC5yZWdpc3RlcihlbWl0dGVyMSwg
Rm9vRXZlbnQsIGZvb0NhbGxiYWNrKTsKKyAgICBsaXN0ZW5lclNldC5yZWdpc3RlcihlbWl0dGVy
MSwgQmFyRXZlbnQsIGJhckNhbGxiYWNrKTsKKyAgICBsaXN0ZW5lclNldC5yZWdpc3RlcihlbWl0
dGVyMiwgQmF6RXZlbnQsIGJhekNhbGxiYWNrLCBjb250ZXh0Mik7CisKKyAgICBsaXN0ZW5lclNl
dC5pbnN0YWxsKCk7CisgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRpc3BhdGNoaW5nIGV2ZW50cy4i
KTsKKyAgICBlbWl0dGVyMS5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoRm9vRXZlbnQsIGRhdGEx
KTsgLy8gU2hvdWxkIGZpcmUuCisgICAgZW1pdHRlcjEuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJz
KEJhckV2ZW50LCBkYXRhMik7IC8vIFNob3VsZCBmaXJlLgorICAgIGVtaXR0ZXIyLmRpc3BhdGNo
RXZlbnRUb0xpc3RlbmVycyhCYXpFdmVudCwgZGF0YTIpOyAvLyBTaG91bGQgZmlyZS4KKyAgICBJ
bnNwZWN0b3JUZXN0LmxvZygiVW5pbnN0YWxsaW5nIGxpc3RlbmVycy4iKTsKKyAgICBsaXN0ZW5l
clNldC51bmluc3RhbGwoKTsKKworICAgIEluc3BlY3RvclRlc3QubG9nKCJJbnN0YWxsaW5nIGxp
c3RlbmVycy4iKTsKKyAgICBsaXN0ZW5lclNldC5pbnN0YWxsKCk7CisgICAgSW5zcGVjdG9yVGVz
dC5sb2coIkRpc3BhdGNoaW5nIGV2ZW50cy4iKTsKKyAgICBlbWl0dGVyMS5kaXNwYXRjaEV2ZW50
VG9MaXN0ZW5lcnMoRm9vRXZlbnQsIGRhdGExKTsgLy8gU2hvdWxkIGZpcmUuCisgICAgZW1pdHRl
cjEuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKEJhckV2ZW50LCBkYXRhMik7IC8vIFNob3VsZCBm
aXJlLgorICAgIGVtaXR0ZXIyLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhCYXpFdmVudCwgZGF0
YTIpOyAvLyBTaG91bGQgZmlyZS4KKworICAgIEluc3BlY3RvclRlc3QubG9nKCJVbnJlZ2lzdGVy
aW5nIGV2ZXJ5dGhpbmcuIik7CisgICAgbGlzdGVuZXJTZXQudW5yZWdpc3RlcigpOworICAgIElu
c3BlY3RvclRlc3QubG9nKCJEaXNwYXRjaGluZyBldmVudHMuIik7CisgICAgZW1pdHRlcjEuZGlz
cGF0Y2hFdmVudFRvTGlzdGVuZXJzKEZvb0V2ZW50LCBkYXRhMSk7IC8vIFNob3VsZCBub3QgZmly
ZS4KKyAgICBlbWl0dGVyMS5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoQmFyRXZlbnQsIGRhdGEy
KTsgLy8gU2hvdWxkIG5vdCBmaXJlLgorICAgIGVtaXR0ZXIyLmRpc3BhdGNoRXZlbnRUb0xpc3Rl
bmVycyhCYXpFdmVudCwgZGF0YTIpOyAvLyBTaG91bGQgbm90IGZpcmUuCisKKyAgICBJbnNwZWN0
b3JUZXN0LmxvZygiVW5pbnRhbGxpbmcgYW5kIGRpc2Nvbm5lY3RpbmcgbGlzdGVuZXJzLiIpOwor
ICAgIGxpc3RlbmVyU2V0LnVuaW5zdGFsbCh0cnVlKTsKKyAgICBJbnNwZWN0b3JUZXN0LmxvZygi
RGlzcGF0Y2hpbmcgZXZlbnRzLiIpOworICAgIGVtaXR0ZXIxLmRpc3BhdGNoRXZlbnRUb0xpc3Rl
bmVycyhGb29FdmVudCwgZGF0YTEpOyAvLyBTaG91bGQgbm90IGZpcmUuCisgICAgZW1pdHRlcjEu
ZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKEJhckV2ZW50LCBkYXRhMik7IC8vIFNob3VsZCBub3Qg
ZmlyZS4KKyAgICBlbWl0dGVyMi5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoQmF6RXZlbnQsIGRh
dGEyKTsgLy8gU2hvdWxkIG5vdCBmaXJlLgorCisgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIWVt
aXR0ZXIxLmhhc0V2ZW50TGlzdGVuZXJzKEZvb0V2ZW50KSwgIkVtaXR0ZXIgc2hvdWxkIG5vdCBo
YXZlIGEgbGlzdGVuZXIuIik7CisgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIWVtaXR0ZXIxLmhh
c0V2ZW50TGlzdGVuZXJzKEJhckV2ZW50KSwgIkVtaXR0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgbGlz
dGVuZXIuIik7CisgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIWVtaXR0ZXIyLmhhc0V2ZW50TGlz
dGVuZXJzKEJhekV2ZW50KSwgIkVtaXR0ZXIgc2hvdWxkIG5vdCBoYXZlIGEgbGlzdGVuZXIuIik7
CisKKyAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdGluZyBiYXNpYyBmdW5j
dGlvbmFsaXR5IG9mIFdlYkluc3BlY3Rvci5FdmVudExpc3RlbmVyU2V0LjwvcD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL2V2
ZW50LWxpc3RlbmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9ldmVu
dC1saXN0ZW5lci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYzNTNlNTUzN2NiY2E4OTAzNjgzNmM5MDU2NGZi
MjMxZWMxYjMwMjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5p
dC10ZXN0cy9ldmVudC1saXN0ZW5lci5odG1sCkBAIC0wLDAgKzEsOTMgQEAKKzwhZG9jdHlwZSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1
bmN0aW9uIHRlc3QoKQoreworICAgIGNvbnN0IEthYm9vbUV2ZW50ID0gImthYm9vbSI7CisgICAg
dmFyIGVtaXR0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLk9iamVjdCgpOworICAgIHZhciBjb250ZXh0
ID0gbmV3IFdlYkluc3BlY3Rvci5PYmplY3QoKTsKKyAgICB2YXIgZGF0YSA9IFsxLCAyLCAzXTsK
KworICAgIGZ1bmN0aW9uIGthYm9vbUNhbGxiYWNrKGV2ZW50KSB7CisgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0KHRoaXMgPT09IGNvbnRleHQsICJDYWxsYmFjayBpbnZva2VkIHdpdGggd3Jv
bmcgfHRoaXN8IGJpbmRpbmcuIik7CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGV2ZW50
LnRhcmdldCA9PT0gZW1pdHRlciwgIkNhbGxiYWNrIGludm9rZWQgd2l0aCB3cm9uZyBldmVudCBl
bWl0dGVyLiIpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChldmVudC5kYXRhID09PSBk
YXRhLCAiQ2FsbGJhY2sgaW52b2tlZCB3aXRoIHdyb25nIGV2ZW50IGRhdGEuIik7CisKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIkludm9rZWQgY2FsbGJhY2sgZm9yIGthYm9vbSBldmVudC4i
KTsKKyAgICB9CisKKyAgICAvLyBUZXN0IGZvciBtdWx0aXBsZSBmaXJpbmdzIG9mIHRoZSBsaXN0
ZW5lci4KKworICAgIHZhciBsaXN0ZW5lciA9IG5ldyBXZWJJbnNwZWN0b3IuRXZlbnRMaXN0ZW5l
cihjb250ZXh0KTsKKyAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghZW1pdHRlci5oYXNFdmVudExp
c3RlbmVycyhLYWJvb21FdmVudCksICJFbWl0dGVyIHNob3VsZCBub3QgaGF2ZSBhbnkgbGlzdGVu
ZXJzLiIpOworICAgIGVtaXR0ZXIuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKEthYm9vbUV2ZW50
LCBkYXRhKTsgLy8gU2hvdWxkIG5vdCBmaXJlIGFueXRoaW5nLgorCisgICAgSW5zcGVjdG9yVGVz
dC5sb2coIkNvbm5lY3RpbmcgdGhlIGxpc3RlbmVyLiIpOworICAgIGxpc3RlbmVyLmNvbm5lY3Qo
ZW1pdHRlciwgS2Fib29tRXZlbnQsIGthYm9vbUNhbGxiYWNrKTsKKyAgICBJbnNwZWN0b3JUZXN0
LmFzc2VydChlbWl0dGVyLmhhc0V2ZW50TGlzdGVuZXJzKEthYm9vbUV2ZW50KSwgIkVtaXR0ZXIg
c2hvdWxkIGhhdmUgYSBsaXN0ZW5lci4iKTsKKyAgICBlbWl0dGVyLmRpc3BhdGNoRXZlbnRUb0xp
c3RlbmVycyhLYWJvb21FdmVudCwgZGF0YSk7IC8vIFNob3VsZCBmaXJlLgorICAgIGVtaXR0ZXIu
ZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKEthYm9vbUV2ZW50LCBkYXRhKTsgLy8gU2hvdWxkIGZp
cmUuCisgICAgSW5zcGVjdG9yVGVzdC5sb2coIkRpc2Nvbm5lY3RpbmcgdGhlIGxpc3RlbmVyLiIp
OworICAgIGxpc3RlbmVyLmRpc2Nvbm5lY3QoKTsKKworICAgIGVtaXR0ZXIuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKEthYm9vbUV2ZW50LCBkYXRhKTsgLy8gU2hvdWxkIG5vdCBmaXJlIGFueXRo
aW5nLgorICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFlbWl0dGVyLmhhc0V2ZW50TGlzdGVuZXJz
KEthYm9vbUV2ZW50KSwgIkVtaXR0ZXIgc2hvdWxkIG5vdCBoYXZlIGFueSBsaXN0ZW5lcnMuIik7
CisKKyAgICAvLyBUZXN0IHJlY29ubmVjdGlvbi4KKworICAgIEluc3BlY3RvclRlc3QubG9nKCJD
b25uZWN0aW5nIHRoZSBsaXN0ZW5lci4iKTsKKyAgICBsaXN0ZW5lci5jb25uZWN0KGVtaXR0ZXIs
IEthYm9vbUV2ZW50LCBrYWJvb21DYWxsYmFjayk7CisgICAgZW1pdHRlci5kaXNwYXRjaEV2ZW50
VG9MaXN0ZW5lcnMoS2Fib29tRXZlbnQsIGRhdGEpOyAvLyBTaG91bGQgZmlyZS4KKyAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiRGlzY29ubmVjdGluZyB0aGUgbGlzdGVuZXIuIik7CisgICAgbGlzdGVu
ZXIuZGlzY29ubmVjdCgpOworCisgICAgLy8gVGVzdCB1bnVzZWQgbGlzdGVuZXIuCisKKyAgICBJ
bnNwZWN0b3JUZXN0LmxvZygiQ29ubmVjdGluZyB0aGUgbGlzdGVuZXIuIik7CisgICAgbGlzdGVu
ZXIuY29ubmVjdChlbWl0dGVyLCBLYWJvb21FdmVudCwga2Fib29tQ2FsbGJhY2spOworICAgIElu
c3BlY3RvclRlc3QubG9nKCJEaXNjb25uZWN0aW5nIHRoZSBsaXN0ZW5lci4iKTsKKyAgICBsaXN0
ZW5lci5kaXNjb25uZWN0KCk7CisKKyAgICAvLyBUZXN0IGZvciBzaW5nbGUgZmlyaW5nIG9mIHRo
ZSBsaXN0ZW5lci4KKworICAgIHZhciBzaW5nbGVMaXN0ZW5lciA9IG5ldyBXZWJJbnNwZWN0b3Iu
RXZlbnRMaXN0ZW5lcihjb250ZXh0LCB0cnVlKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCgh
ZW1pdHRlci5oYXNFdmVudExpc3RlbmVycyhLYWJvb21FdmVudCksICJFbWl0dGVyIHNob3VsZCBu
b3QgaGF2ZSBhbnkgbGlzdGVuZXJzLiIpOworICAgIGVtaXR0ZXIuZGlzcGF0Y2hFdmVudFRvTGlz
dGVuZXJzKEthYm9vbUV2ZW50LCBkYXRhKTsgLy8gU2hvdWxkIG5vdCBmaXJlIGFueXRoaW5nLgor
CisgICAgSW5zcGVjdG9yVGVzdC5sb2coIkNvbm5lY3RpbmcgdGhlIHNpbmdsZS1maXJlIGxpc3Rl
bmVyLiIpOworICAgIHNpbmdsZUxpc3RlbmVyLmNvbm5lY3QoZW1pdHRlciwgS2Fib29tRXZlbnQs
IGthYm9vbUNhbGxiYWNrKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChlbWl0dGVyLmhhc0V2
ZW50TGlzdGVuZXJzKEthYm9vbUV2ZW50KSwgIkVtaXR0ZXIgc2hvdWxkIGhhdmUgYSBsaXN0ZW5l
ci4iKTsKKyAgICBlbWl0dGVyLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhLYWJvb21FdmVudCwg
ZGF0YSk7IC8vIFNob3VsZCBmaXJlLgorICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KCFlbWl0dGVy
Lmhhc0V2ZW50TGlzdGVuZXJzKEthYm9vbUV2ZW50KSwgIkVtaXR0ZXIgc2hvdWxkIG5vdCBoYXZl
IGFueSBsaXN0ZW5lcnMuIik7CisgICAgZW1pdHRlci5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMo
S2Fib29tRXZlbnQsIGRhdGEpOyAvLyBTaG91bGQgbm90IGZpcmUuCisgICAgSW5zcGVjdG9yVGVz
dC5sb2coIkRpc2Nvbm5lY3RpbmcgdGhlIHNpbmdsZS1maXJlIGxpc3RlbmVyLiIpOworICAgIHNp
bmdsZUxpc3RlbmVyLmRpc2Nvbm5lY3QoKTsgLy8gU2hvdWxkIGNhdXNlIGFuIGVycm9yLgorICAg
IGVtaXR0ZXIuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKEthYm9vbUV2ZW50LCBkYXRhKTsgLy8g
U2hvdWxkIG5vdCBmaXJlLgorCisgICAgLy8gVGVzdCBmb3IgdmFyaW91cyBlcnJvciBjYXNlcyBh
bmQgYWJ1c2UuCisKKyAgICB2YXIgYmFkTGlzdGVuZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkV2ZW50
TGlzdGVuZXIoY29udGV4dCk7CisgICAgYmFkTGlzdGVuZXIuY29ubmVjdChkYXRhLCBkYXRhLCBk
YXRhKTsgLy8gU2hvdWxkIGNvbXBsYWluIGFib3V0IG5vbi1jYWxsYWJsZSBjYWxsYmFjay4KKyAg
ICBiYWRMaXN0ZW5lci5jb25uZWN0KG51bGwsIEthYm9vbUV2ZW50LCBrYWJvb21DYWxsYmFjayk7
IC8vIFNob3VsZCBjb21wbGFpbiBhYm91dCBub24tY2FsbGFibGUgY2FsbGJhY2suCisgICAgYmFk
TGlzdGVuZXIuY29ubmVjdChlbWl0dGVyLCBLYWJvb21FdmVudCwgbnVsbCk7IC8vIFNob3VsZCBj
b21wbGFpbiBhYm91dCBub24tY2FsbGFibGUgY2FsbGJhY2suCisgICAgYmFkTGlzdGVuZXIuY29u
bmVjdChlbWl0dGVyLCBudWxsLCBrYWJvb21DYWxsYmFjayk7IC8vIFNob3VsZCBjb21wbGFpbiBh
Ym91dCBudWxsIGV2ZW50LgorCisgICAgdmFyIGJhZExpc3RlbmVyMiA9IG5ldyBXZWJJbnNwZWN0
b3IuRXZlbnRMaXN0ZW5lcihjb250ZXh0KTsKKyAgICBiYWRMaXN0ZW5lcjIuZGlzY29ubmVjdCgp
OyAvLyBTaG91bGQgY29tcGxhaW4gYWJvdXQgYWxyZWFkeSBkaXNjb25uZWN0ZWQuCisgICAgYmFk
TGlzdGVuZXIyLmNvbm5lY3QoZW1pdHRlciwgS2Fib29tRXZlbnQsIGthYm9vbUNhbGxiYWNrKTsK
KyAgICBiYWRMaXN0ZW5lcjIuY29ubmVjdChlbWl0dGVyLCBLYWJvb21FdmVudCwga2Fib29tQ2Fs
bGJhY2spOyAvLyBTaG91bGQgY29tcGxhaW4gYWJvdXQgYWxyZWFkeSBjb25uZWN0ZWQuCisgICAg
ZW1pdHRlci5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoS2Fib29tRXZlbnQsIGRhdGEpOyAvLyBT
aG91bGQgZmlyZS4KKyAgICBiYWRMaXN0ZW5lcjIuY29ubmVjdChlbWl0dGVyLCBLYWJvb21FdmVu
dCwga2Fib29tQ2FsbGJhY2spOyAvLyBTaG91bGQgY29tcGxhaW4gYWJvdXQgYWxyZWFkeSBjb25u
ZWN0ZWQuCisgICAgYmFkTGlzdGVuZXIyLmRpc2Nvbm5lY3QoKTsKKyAgICBiYWRMaXN0ZW5lcjIu
ZGlzY29ubmVjdCgpOyAvLyBTaG91bGQgY29tcGxhaW4gYWJvdXQgYWxyZWFkeSBkaXNjb25uZWN0
ZWQuCisKKyAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdGluZyBiYXNpYyBm
dW5jdGlvbmFsaXR5IG9mIFdlYkluc3BlY3Rvci5FdmVudExpc3RlbmVyLjwvcD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3N5
bmMtdGVzdC1zdWl0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10
ZXN0cy9zeW5jLXRlc3Qtc3VpdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyZGU2MmM0NWIy
YjhjNjVkOWMxZTc0Y2JkODU2YjBkYjM4ZTMyYzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9zeW5jLXRlc3Qtc3VpdGUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMzQgQEAKK1BBU1M6IGluc3RhbnRpYXRpbmcgU3luY1Rlc3RTdWl0ZSByZXF1aXJl
cyBuYW1lIGFyZ3VtZW50LgorUEFTUzogaW5zdGFudGlhdGluZyBTeW5jVGVzdFN1aXRlIHJlcXVp
cmVzIHN0cmluZyBuYW1lIGFyZ3VtZW50LgorUEFTUzogc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGFk
ZCBlbXB0eSB0ZXN0IGNhc2UuCitQQVNTOiBzaG91bGQgbm90IGJlIGFibGUgdG8gYWRkIG5vbi1v
YmplY3QgdGVzdCBjYXNlLgorUEFTUzogdGVzdCBjYXNlIHNob3VsZCByZXF1aXJlIHN0cmluZyBu
YW1lLgorUEFTUzogdGVzdCBjYXNlIHNob3VsZCByZXF1aXJlIHRlc3QgZnVuY3Rpb24uCitQQVNT
OiBzaG91bGQgbm90IGJlIGFibGUgdG8gcnVuIGVtcHR5IHRlc3Qgc3VpdGUuCisKKz09IFJ1bm5p
bmcgdGVzdCBzdWl0ZTogU3luY1Rlc3RTdWl0ZS5SdW5Ud2ljZVN1aXRlCistLSBSdW5uaW5nIHRl
c3QgY2FzZTogRHVtbXlUZXN0MAorUEFTUzogUmV0dXJuIHZhbHVlIG9mIHJ1blR3aWNlU3VpdGUu
cnVuVGVzdENhc2VzKCkgc2hvdWxkIGJlIHRydWUgd2hlbiBhbGwgdGVzdHMgcGFzcy4KK1BBU1M6
IHNob3VsZCBub3QgYmUgYWJsZSB0byBydW4gYSB0ZXN0IHN1aXRlIHR3aWNlLgorCis9PSBSdW5u
aW5nIHRlc3Qgc3VpdGU6IFN5bmNUZXN0U3VpdGUuU2VxdWVudGlhbEV4ZWN1dGlvbgorLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IER1bW15VGVzdDEKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEdW1teVRl
c3QyCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRHVtbXlUZXN0MworLS0gUnVubmluZyB0ZXN0IGNh
c2U6IEZhaWxpbmdUZXN0NAorISEgRVhDRVBUSU9OOiBbb2JqZWN0IE9iamVjdF0KK1BBU1M6IFJl
dHVybiB2YWx1ZSBvZiBzZXF1ZW50aWFsRXhlY3V0aW9uU3VpdGUucnVuVGVzdENhc2VzKCkgc2hv
dWxkIGJlIGZhbHNlIHdoZW4gYSB0ZXN0IGNhc2UgZmFpbHMuCitQQVNTOiBzZXF1ZW50aWFsRXhl
Y3V0aW9uU3VpdGUgc2hvdWxkIGhhdmUgZXhlY3V0ZWQgZm91ciB0ZXN0cy4KK1BBU1M6IHNlcXVl
bnRpYWxFeGVjdXRpb25TdWl0ZSBzaG91bGQgaGF2ZSBwYXNzZWQgdGhyZWUgdGVzdHMuCitQQVNT
OiBzZXF1ZW50aWFsRXhlY3V0aW9uU3VpdGUgc2hvdWxkIGhhdmUgZmFpbGVkIDEgdGVzdC4KK1BB
U1M6IHNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZSBzaG91bGQgaGF2ZSBza2lwcGVkIHplcm8gdGVz
dHMuCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogU3luY1Rlc3RTdWl0ZS5BYm9ydE9uRmFpbHVy
ZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFBhc3NpbmdUZXN0NQorLS0gUnVubmluZyB0ZXN0IGNh
c2U6IEZhaWxpbmdUZXN0NgorUEFTUzogUmV0dXJuIHZhbHVlIG9mIGFib3J0T25GYWlsdXJlU3Vp
dGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIGJlIGZhbHNlIHdoZW4gYSB0ZXN0IGNhc2UgZmFpbHMu
CitQQVNTOiBhYm9ydE9uRmFpbHVyZVN1aXRlIHNob3VsZCBoYXZlIGV4ZWN1dGVkIHR3byB0ZXN0
cy4KK1BBU1M6IGFib3J0T25GYWlsdXJlU3VpdGUgc2hvdWxkIGhhdmUgcGFzc2VkIG9uZSB0ZXN0
LgorUEFTUzogYWJvcnRPbkZhaWx1cmVTdWl0ZSBzaG91bGQgaGF2ZSBmYWlsZWQgb25lIHRlc3Qu
CitQQVNTOiBhYm9ydE9uRmFpbHVyZVN1aXRlIHNob3VsZCBoYXZlIHNraXBwZWQgb25lIHRlc3Qu
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL3N5bmMtdGVz
dC1zdWl0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvc3luYy10ZXN0
LXN1aXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWE2YjllNGY0YTlmYjhhYzM0YjAwMWNlMDQ2MWRiZTU2
NzRmYWQ2YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRl
c3RzL3N5bmMtdGVzdC1zdWl0ZS5odG1sCkBAIC0wLDAgKzEsMTQwIEBACis8IWRvY3R5cGUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0
b3IvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0
aW9uIHRlc3QoKQoreworICAgIHRyeSB7CisgICAgICAgIG5ldyBJbnNwZWN0b3JUZXN0LlN5bmNU
ZXN0U3VpdGUoKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6IGluc3RhbnRpYXRp
bmcgU3luY1Rlc3RTdWl0ZSByZXF1aXJlcyBuYW1lIGFyZ3VtZW50LiIpOworICAgIH0gY2F0Y2gg
KGUpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1M6IGluc3RhbnRpYXRpbmcgU3lu
Y1Rlc3RTdWl0ZSByZXF1aXJlcyBuYW1lIGFyZ3VtZW50LiIpOworICAgIH0KKworICAgIHRyeSB7
CisgICAgICAgIG5ldyBJbnNwZWN0b3JUZXN0LlN5bmNUZXN0U3VpdGUoe30pOworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZygiRkFJTDogaW5zdGFudGlhdGluZyBTeW5jVGVzdFN1aXRlIHJlcXVp
cmVzIHN0cmluZyBuYW1lIGFyZ3VtZW50LiIpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coIlBBU1M6IGluc3RhbnRpYXRpbmcgU3luY1Rlc3RTdWl0ZSByZXF1
aXJlcyBzdHJpbmcgbmFtZSBhcmd1bWVudC4iKTsKKyAgICB9CisKKyAgICB2YXIgYmFkQXJnc1N1
aXRlID0gbmV3IEluc3BlY3RvclRlc3QuU3luY1Rlc3RTdWl0ZSgiZHVtbXkiKTsKKyAgICB0cnkg
eworICAgICAgICBiYWRBcmdzU3VpdGUuYWRkVGVzdENhc2UoKTsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIkZBSUw6IHNob3VsZCBub3QgYmUgYWJsZSB0byBhZGQgZW1wdHkgdGVzdCBjYXNl
LiIpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1M6
IHNob3VsZCBub3QgYmUgYWJsZSB0byBhZGQgZW1wdHkgdGVzdCBjYXNlLiIpOworICAgIH0KKyAg
ICB0cnkgeworICAgICAgICBiYWRBcmdzU3VpdGUuYWRkVGVzdENhc2UoInN0cmluZyIpOworICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRkFJTDogc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGFkZCBu
b24tb2JqZWN0IHRlc3QgY2FzZS4iKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKCJQQVNTOiBzaG91bGQgbm90IGJlIGFibGUgdG8gYWRkIG5vbi1vYmplY3Qg
dGVzdCBjYXNlLiIpOworICAgIH0KKyAgICB0cnkgeworICAgICAgICBiYWRBcmdzU3VpdGUuYWRk
VGVzdENhc2UoeworICAgICAgICAgICAgbmFtZToge30sCisgICAgICAgICAgICB0ZXN0OiBmdW5j
dGlvbigpIHsgcmV0dXJuIHRydWU7IH0sCisgICAgICAgIH0pOworICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiRkFJTDogdGVzdCBjYXNlIHNob3VsZCByZXF1aXJlIHN0cmluZyBuYW1lLiIpOwor
ICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1M6IHRlc3Qg
Y2FzZSBzaG91bGQgcmVxdWlyZSBzdHJpbmcgbmFtZS4iKTsKKyAgICB9CisgICAgdHJ5IHsKKyAg
ICAgICAgYmFkQXJnc1N1aXRlLmFkZFRlc3RDYXNlKHsKKyAgICAgICAgICAgIG5hbWU6ICJmb28i
LAorICAgICAgICAgICAgdGVzdDogbnVsbCwKKyAgICAgICAgfSk7CisgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCJGQUlMOiB0ZXN0IGNhc2Ugc2hvdWxkIHJlcXVpcmUgdGVzdCBmdW5jdGlvbi4i
KTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiB0
ZXN0IGNhc2Ugc2hvdWxkIHJlcXVpcmUgdGVzdCBmdW5jdGlvbi4iKTsKKyAgICB9CisKKyAgICB2
YXIgcnVuRW1wdHlTdWl0ZSA9IG5ldyBJbnNwZWN0b3JUZXN0LlN5bmNUZXN0U3VpdGUoIlN5bmNU
ZXN0U3VpdGUuUnVuRW1wdHlTdWl0ZSIpOworICAgIHRyeSB7CisgICAgICAgIHJ1bkVtcHR5U3Vp
dGUucnVuVGVzdENhc2VzKCk7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiBzaG91
bGQgbm90IGJlIGFibGUgdG8gcnVuIGVtcHR5IHRlc3Qgc3VpdGUuIik7CisgICAgfSBjYXRjaCAo
ZSkgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogc2hvdWxkIG5vdCBiZSBhYmxl
IHRvIHJ1biBlbXB0eSB0ZXN0IHN1aXRlLiIpOworICAgIH0KKworICAgIHZhciBydW5Ud2ljZVN1
aXRlID0gbmV3IEluc3BlY3RvclRlc3QuU3luY1Rlc3RTdWl0ZSgiU3luY1Rlc3RTdWl0ZS5SdW5U
d2ljZVN1aXRlIik7CisgICAgcnVuVHdpY2VTdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5h
bWU6ICJEdW1teVRlc3QwIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0aGF0IGEgc3Vp
dGUgY2FuJ3QgcnVuIG1vcmUgdGhhbiBvbmNlLiIsCisgICAgICAgIHRlc3Q6IGZ1bmN0aW9uKCkg
eyByZXR1cm4gdHJ1ZTsgfQorICAgIH0pOworCisgICAgdHJ5IHsKKyAgICAgICAgdmFyIHJlc3Vs
dCA9IHJ1blR3aWNlU3VpdGUucnVuVGVzdENhc2VzKCk7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
YXNzZXJ0KHJlc3VsdCA9PT0gdHJ1ZSwgIlJldHVybiB2YWx1ZSBvZiBydW5Ud2ljZVN1aXRlLnJ1
blRlc3RDYXNlcygpIHNob3VsZCBiZSB0cnVlIHdoZW4gYWxsIHRlc3RzIHBhc3MuIik7CisKKyAg
ICAgICAgcnVuVHdpY2VTdWl0ZS5ydW5UZXN0Q2FzZXMoKTsgLy8gVHJ5IHRvIHRyaWdnZXIgYW4g
ZXJyb3IuCisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiBzaG91bGQgbm90IGJlIGFi
bGUgdG8gcnVuIGEgdGVzdCBzdWl0ZSB0d2ljZS4iKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAg
ICAgIEluc3BlY3RvclRlc3QubG9nKCJQQVNTOiBzaG91bGQgbm90IGJlIGFibGUgdG8gcnVuIGEg
dGVzdCBzdWl0ZSB0d2ljZS4iKTsKKyAgICB9CisKKyAgICB2YXIgdGhyb3duRXJyb3IgPSBuZXcg
RXJyb3IoeyJ0b2tlbiI6IDY2Nn0pOworCisgICAgdmFyIHNlcXVlbnRpYWxFeGVjdXRpb25TdWl0
ZSA9IG5ldyBJbnNwZWN0b3JUZXN0LlN5bmNUZXN0U3VpdGUoIlN5bmNUZXN0U3VpdGUuU2VxdWVu
dGlhbEV4ZWN1dGlvbiIpOworICAgIHNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZS5hZGRUZXN0Q2Fz
ZSh7CisgICAgICAgIG5hbWU6ICJEdW1teVRlc3QxIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJD
aGVjayB0ZXN0IGNhc2UgZXhlY3V0aW9uIG9yZGVyLiIsCisgICAgICAgIHRlc3Q6IGZ1bmN0aW9u
KCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIH0pOworICAgIHNlcXVlbnRpYWxFeGVjdXRpb25TdWl0
ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJEdW1teVRlc3QyIiwKKyAgICAgICAgZGVz
Y3JpcHRpb246ICJDaGVjayB0ZXN0IGNhc2UgZXhlY3V0aW9uIG9yZGVyLiIsCisgICAgICAgIHRl
c3Q6IGZ1bmN0aW9uKCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIH0pOworICAgIHNlcXVlbnRpYWxF
eGVjdXRpb25TdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJEdW1teVRlc3QzIiwK
KyAgICAgICAgZGVzY3JpcHRpb246ICJDaGVjayB0ZXN0IGNhc2UgZXhlY3V0aW9uIG9yZGVyLiIs
CisgICAgICAgIHRlc3Q6IGZ1bmN0aW9uKCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIH0pOworICAg
IHNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJG
YWlsaW5nVGVzdDQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkNoZWNrIHRoYXQgdGVzdCBmYWls
cyBieSB0aHJvd2luZyBhbiBFcnJvciBpbnN0YW5jZS4iLAorICAgICAgICB0ZXN0OiBmdW5jdGlv
bigpIHsgdGhyb3cgdGhyb3duRXJyb3I7IH0KKyAgICB9KTsKKworICAgIHZhciByZXN1bHQgPSBz
ZXF1ZW50aWFsRXhlY3V0aW9uU3VpdGUucnVuVGVzdENhc2VzKCk7CisgICAgSW5zcGVjdG9yVGVz
dC5hc3NlcnQocmVzdWx0ID09PSBmYWxzZSwgIlJldHVybiB2YWx1ZSBvZiBzZXF1ZW50aWFsRXhl
Y3V0aW9uU3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIGJlIGZhbHNlIHdoZW4gYSB0ZXN0IGNh
c2UgZmFpbHMuIik7CisgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoc2VxdWVudGlhbEV4ZWN1dGlv
blN1aXRlLnJ1bkNvdW50ID09PSA0LCAic2VxdWVudGlhbEV4ZWN1dGlvblN1aXRlIHNob3VsZCBo
YXZlIGV4ZWN1dGVkIGZvdXIgdGVzdHMuIik7CisgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoc2Vx
dWVudGlhbEV4ZWN1dGlvblN1aXRlLnBhc3NDb3VudCA9PT0gMywgInNlcXVlbnRpYWxFeGVjdXRp
b25TdWl0ZSBzaG91bGQgaGF2ZSBwYXNzZWQgdGhyZWUgdGVzdHMuIik7CisgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoc2VxdWVudGlhbEV4ZWN1dGlvblN1aXRlLmZhaWxDb3VudCA9PT0gMSwgInNl
cXVlbnRpYWxFeGVjdXRpb25TdWl0ZSBzaG91bGQgaGF2ZSBmYWlsZWQgMSB0ZXN0LiIpOworICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0KHNlcXVlbnRpYWxFeGVjdXRpb25TdWl0ZS5za2lwQ291bnQg
PT09IDAsICJzZXF1ZW50aWFsRXhlY3V0aW9uU3VpdGUgc2hvdWxkIGhhdmUgc2tpcHBlZCB6ZXJv
IHRlc3RzLiIpOworCisgICAgdmFyIGFib3J0T25GYWlsdXJlU3VpdGUgPSBuZXcgSW5zcGVjdG9y
VGVzdC5TeW5jVGVzdFN1aXRlKCJTeW5jVGVzdFN1aXRlLkFib3J0T25GYWlsdXJlIik7CisgICAg
YWJvcnRPbkZhaWx1cmVTdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJQYXNzaW5n
VGVzdDUiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlRoaXMgdGVzdCBpcyBhIGR1bW15LiIsCisg
ICAgICAgIHRlc3Q6IGZ1bmN0aW9uKCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIH0pOworICAgIGFi
b3J0T25GYWlsdXJlU3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiRmFpbGluZ1Rl
c3Q2IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJUaGlzIHRlc3Qgc2hvdWxkIGZhaWwgYnkgZXhw
bGljaXRseSByZXR1cm5pbmcgYGZhbHNlYC4iLAorICAgICAgICB0ZXN0OiBmdW5jdGlvbigpIHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgfSk7CisgICAgYWJvcnRPbkZhaWx1cmVTdWl0ZS5hZGRUZXN0
Q2FzZSh7CisgICAgICAgIG5hbWU6ICJQYXNzaW5nVGVzdDciLAorICAgICAgICBkZXNjcmlwdGlv
bjogIlRoaXMgdGVzdCBzaG91bGQgbm90IGV4ZWN1dGVkIHdoZW4gdGhlIHByZWNlZGluZyB0ZXN0
IGZhaWxzLiIsCisgICAgICAgIHRlc3Q6IGZ1bmN0aW9uKCkgeyByZXR1cm4gdHJ1ZTsgfQorICAg
IH0pOworCisgICAgYWJvcnRPbkZhaWx1cmVTdWl0ZS5ydW5UZXN0Q2FzZXMoKTsKKyAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydChyZXN1bHQgPT09IGZhbHNlLCAiUmV0dXJuIHZhbHVlIG9mIGFib3J0
T25GYWlsdXJlU3VpdGUucnVuVGVzdENhc2VzKCkgc2hvdWxkIGJlIGZhbHNlIHdoZW4gYSB0ZXN0
IGNhc2UgZmFpbHMuIik7CisgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYWJvcnRPbkZhaWx1cmVT
dWl0ZS5ydW5Db3VudCA9PT0gMiwgImFib3J0T25GYWlsdXJlU3VpdGUgc2hvdWxkIGhhdmUgZXhl
Y3V0ZWQgdHdvIHRlc3RzLiIpOworICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGFib3J0T25GYWls
dXJlU3VpdGUucGFzc0NvdW50ID09PSAxLCAiYWJvcnRPbkZhaWx1cmVTdWl0ZSBzaG91bGQgaGF2
ZSBwYXNzZWQgb25lIHRlc3QuIik7CisgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoYWJvcnRPbkZh
aWx1cmVTdWl0ZS5mYWlsQ291bnQgPT09IDEsICJhYm9ydE9uRmFpbHVyZVN1aXRlIHNob3VsZCBo
YXZlIGZhaWxlZCBvbmUgdGVzdC4iKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChhYm9ydE9u
RmFpbHVyZVN1aXRlLnNraXBDb3VudCA9PT0gMSwgImFib3J0T25GYWlsdXJlU3VpdGUgc2hvdWxk
IGhhdmUgc2tpcHBlZCBvbmUgdGVzdC4iKTsKKworICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVU
ZXN0KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9uTG9hZD0icnVuVGVzdCgpIj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0
LXRlc3RzL3Rlc3QtaGFybmVzcy10cml2aWFsbHktd29ya3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJuZXNzLXRyaXZpYWxseS13b3Jrcy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjNlY2IwYWY4YzM3NmQ4MjBkYjg1YmNlYTVjZmRjMWVk
MDhhZTc4NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRl
c3RzL3Rlc3QtaGFybmVzcy10cml2aWFsbHktd29ya3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NCBAQAorVGVzdHMgdGhhdCB0aGUgdGVzdCBoYXJuZXNzIGZvciBub24tc3R1YiBpbnNwZWN0b3Ig
dGVzdHMgY2FuIGxvYWQgYW5kIHJ1biBhIHRlc3QuCisKK0xvZ2dlZCBhIG1lc3NhZ2UgZnJvbSB0
aGUgaW5zcGVjdG9yIHBhZ2UuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91
bml0LXRlc3RzL3Rlc3QtaGFybmVzcy10cml2aWFsbHktd29ya3MuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci91bml0LXRlc3RzL3Rlc3QtaGFybmVzcy10cml2aWFsbHktd29ya3MuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iY2RjY2EzOTY5Y2E0ODExZjQ2NzJiOTVhYzQzNTU0YTJiZTBjMGE5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvdGVzdC1oYXJu
ZXNzLXRyaXZpYWxseS13b3Jrcy5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhZG9jdHlwZSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rv
ci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0
aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3QubG9nKCJMb2dnZWQgYSBtZXNzYWdlIGZy
b20gdGhlIGluc3BlY3RvciBwYWdlLiIpOworICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0
KCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxw
PlRlc3RzIHRoYXQgdGhlIHRlc3QgaGFybmVzcyBmb3Igbm9uLXN0dWIgaW5zcGVjdG9yIHRlc3Rz
IGNhbiBsb2FkIGFuZCBydW4gYSB0ZXN0LjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjllN2Q1YzM5MGFiNjkwZjkw
ODE0OWMwYmNmYzg1ODk0NDI3NGQzNS4uM2M1OTJlMDczZGY3MTRhMjkwZDZlNWNkZjkwOTJiNmEx
NjhkNWQ3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTc0OCw5ICs3NDgsOCBAQCB3ZWJraXQub3JnL2IvMTM2MDk5IGZhc3QvaGFybmVzcy9zaG93LW1v
ZGFsLWRpYWxvZy5odG1sIFsgQ3Jhc2ggVGltZW91dCBdCiAKIHdlYmtpdC5vcmcvYi8xMzYyMjcg
bWF0aG1sL3ZlcnktbGFyZ2Utc3RyZXRjaHktb3BlcmF0b3JzLmh0bWwgWyBDcmFzaCBUaW1lb3V0
IFBhc3MgXQogCi0jd2Via2l0Lm9yZy9iLzE0MjE1OCBpbnNwZWN0b3ItcHJvdG9jb2wvZG9tL3Jl
bW92ZS1tdWx0aXBsZS1ub2Rlcy5odG1sIFsgQ3Jhc2ggUGFzcyBdCi0KLXdlYmtpdC5vcmcvYi8x
NDcwMTggaW5zcGVjdG9yL2Nzcy9nZXQtc3lzdGVtLWZvbnRzLmh0bWwgWyBTa2lwIF0KKyN3ZWJr
aXQub3JnL2IvMTQyMTU4IGluc3BlY3Rvci9kb20vcmVtb3ZlLW11bHRpcGxlLW5vZGVzLmh0bWwg
WyBDcmFzaCBQYXNzIF0KKyN3ZWJraXQub3JnL2IvMTQ3MDE4IGluc3BlY3Rvci9jc3MvZ2V0LXN5
c3RlbS1mb250cy5odG1sIFsgU2tpcCBdCiAKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCiAjIEZMQUtZIFRFU1RTCkBAIC0xNTM3LDggKzE1MzYsOCBAQCBCdWcoRUZMKSB0cmFuc2l0
aW9ucy9uZWdhdGl2ZS1kZWxheS5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIHdlYmtpdC5vcmcvYi8x
MDIwNjggd2Via2l0Lm9yZy9iLzEwMjk5MyBtZWRpYS9hdWRpby1yZXBhaW50Lmh0bWwgWyBGYWls
dXJlIF0KIHdlYmtpdC5vcmcvYi8xMDIwNjggd2Via2l0Lm9yZy9iLzEwMjk5MyBtZWRpYS9tZWRp
YS1kb2N1bWVudC1hdWRpby1yZXBhaW50Lmh0bWwgWyBUaW1lb3V0IF0KIAotI3dlYmtpdC5vcmcv
Yi8xMDA4NDYgaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3BhdXNlLWRlZGljYXRlZC13b3Jr
ZXIuaHRtbCBbIFNraXAgXQotI3dlYmtpdC5vcmcvYi8xMDA4NDYgaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL3Rlcm1pbmF0ZS1kZWRpY2F0ZWQtd29ya2VyLXdoaWxlLXBhdXNlZC5odG1sIFsg
U2tpcCBdCisjd2Via2l0Lm9yZy9iLzEwMDg0NiBpbnNwZWN0b3IvZGVidWdnZXIvcGF1c2UtZGVk
aWNhdGVkLXdvcmtlci5odG1sIFsgU2tpcCBdCisjd2Via2l0Lm9yZy9iLzEwMDg0NiBpbnNwZWN0
b3IvZGVidWdnZXIvdGVybWluYXRlLWRlZGljYXRlZC13b3JrZXItd2hpbGUtcGF1c2VkLmh0bWwg
WyBTa2lwIF0KIAogIyBOZXcgbWVkaWEgdGVzdCBpbnRyb2R1Y2VkIGluIHIxMzM2NjAgZmFpbHMu
CiB3ZWJraXQub3JnL2IvMTAxNDM5IG1lZGlhL3Byb2dyZXNzLWV2ZW50cy1nZW5lcmF0ZWQtY29y
cmVjdGx5Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQpAQCAtMTk3OSw3ICsxOTc4LDcgQEAgd2Via2l0
Lm9yZy9iLzEzMzMwOCBmYXN0L3NlbGVjdG9ycy9ob3Zlci1xdWlya3MuaHRtbCBbIEZhaWx1cmUg
XQogd2Via2l0Lm9yZy9iLzEzMzk3MiBtYXRobWwvcHJlc2VudGF0aW9uL2ZvcmVpZ24tZWxlbWVu
dC1pbi10b2tlbi5odG1sIFsgRmFpbHVyZSBdCiAKICMgVGVzdHMgZmFpbGluZyBvciBmbGFreSB3
aXRoIGNsb3NlciByZWFzb25zIHVua253b3duIGF0IHRoaXMgdGltZQotI3dlYmtpdC5vcmcvYi8x
MzM4NTcgaW5zcGVjdG9yLXByb3RvY29sL2xheWVycy9sYXllcnMtYmxlbmRpbmctY29tcG9zaXRp
bmctcmVhc29ucy5odG1sIFsgRmFpbHVyZSBdCisjd2Via2l0Lm9yZy9iLzEzMzg1NyBpbnNwZWN0
b3IvbGF5ZXJzL2xheWVycy1ibGVuZGluZy1jb21wb3NpdGluZy1yZWFzb25zLmh0bWwgWyBGYWls
dXJlIF0KIHdlYmtpdC5vcmcvYi8xMzM4NjAgZmFzdC9yZWdpb25zL2F1dG8tc2l6ZS9hdXRvc2l6
ZS1yZWdpb24td2luZG93LXJlc2l6ZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBQYXNzIF0KIHdl
YmtpdC5vcmcvYi8xMzM5NzQgZmFzdC9jc3MzLXRleHQvY3NzMy10ZXh0LWRlY29yYXRpb24vdGV4
dC1kZWNvcmF0aW9uLXNraXAvdGV4dC1kZWNvcmF0aW9uLXNraXAtaW5rLXN2Zy5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBQYXNzIF0KIApAQCAtMjA2Miw4ICsyMDYxLDggQEAgd2Via2l0Lm9yZy9i
LzE0MTUxMiBmYXN0L2Nzcy9wc2V1ZG8taW52YWxpZC1mb3JtLWludmFsaWRhdGlvbi1vcHRpbWl6
YXRpb24uaHRtbAogd2Via2l0Lm9yZy9iLzE0MTUxMiBmYXN0L2Nzcy9wc2V1ZG8tdmFsaWQtZm9y
bS1pbnZhbGlkYXRpb24tb3B0aW1pemF0aW9uLmh0bWwgWyBGYWlsdXJlIF0KIAogIyBQcm9iYWJs
eSBzdGFydGVkIGZhaWxpbmcgc2luY2UgcjE1OTExMAotI3dlYmtpdC5vcmcvYi8xNDE1OTEgaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL2JyZWFrcG9pbnQtZXZhbC13aXRoLWV4Y2VwdGlvbi5o
dG1sIFsgRmFpbHVyZSBdCi0jd2Via2l0Lm9yZy9iLzE0MTU5MSBpbnNwZWN0b3ItcHJvdG9jb2wv
ZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hY3Rpb25zLmh0bWwgWyBGYWlsdXJlIF0KKyN3ZWJraXQu
b3JnL2IvMTQxNTkxIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LWV2YWwtd2l0aC1leGNl
cHRpb24uaHRtbCBbIEZhaWx1cmUgXQorI3dlYmtpdC5vcmcvYi8xNDE1OTEgaW5zcGVjdG9yL2Rl
YnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy5odG1sIFsgRmFpbHVyZSBdCiAKICMgRG9lc24n
dCBzdXBwb3J0IGludGVyLWlkZW9ncmFwaCBqdXN0aWZpY2F0aW9uCiB3ZWJraXQub3JnL2IvMTQx
NTkzIGZhc3QvdGV4dC9qdXN0aWZ5LWlkZW9ncmFwaC1jb21wbGV4Lmh0bWwgWyBGYWlsdXJlIF0K
QEAgLTIxNjgsOCArMjE2Nyw4IEBAIHdlYmtpdC5vcmcvYi8xNDM4NzggaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3Bvc3RyZWRpcmVjdC1nb2JhY2sxLmh0bWwgWyBGYWlsdXJlIF0KIGNvbXBvc2l0aW5n
L21hc2tzL2NvbXBvc2l0aW5nLWNsaXAtcGF0aC1jaGFuZ2Utbm8tcmVwYWludC5odG1sIFsgRmFp
bHVyZSBdCiBjb21wb3NpdGluZy90aWxpbmcvdHJhbnNmb3JtLW9yaWdpbi10aWxlZC5odG1sIFsg
RmFpbHVyZSBdCiAKLSMgW0VGTF0gUkVHUkVTU0lPTihyMTgzOTA3KTogSXQgbWFkZSBhbGwgaW5z
cGVjdG9yLXByb3RvY29sIHRlc3QgY3Jhc2gKLXdlYmtpdC5vcmcvYi8xNDQ3MzcgaW5zcGVjdG9y
LXByb3RvY29sIFsgU2tpcCBdCisjIFtFRkxdIFJFR1JFU1NJT04ocjE4MzkwNyk6IEl0IG1hZGUg
YWxsIGluc3BlY3RvciB0ZXN0IGNyYXNoCit3ZWJraXQub3JnL2IvMTQ0NzM3IGluc3BlY3RvciBb
IFNraXAgXQogd2Via2l0Lm9yZy9iLzE0NDczNyBodHRwL3Rlc3RzL2luc3BlY3RvciBbIFNraXAg
XQogCiB3ZWJraXQub3JnL2IvMTQ1NjMyIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLXRocm90dGxlLXN1YmZyYW1lLmh0bWwgWyBUaW1lb3V0IF0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOWQzNTc0MDkwNGVmZDNiMTIzMWEwMTg1
ZjdlOTA5ODEyZjM4ODcxOS4uNzg1MzA5MGYwMzhhM2FkYmRmZjcyYTNmYzZjMmE5NjcyY2RiYjYy
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMwMCw3
ICszMDAsNyBAQCB3ZWJraXQub3JnL2IvNzE4NDkgaHR0cC90ZXN0cy9zZWN1cml0eS93ZWJnbC1y
ZW1vdGUtcmVhZC1yZW1vdGUtaW1hZ2UtYWxsb3dlZC5odAogd2Via2l0Lm9yZy9iLzcxODQ5IGh0
dHAvdGVzdHMvc2VjdXJpdHkvd2ViZ2wtcmVtb3RlLXJlYWQtcmVtb3RlLWltYWdlLWFsbG93ZWQt
d2l0aC1jcmVkZW50aWFscy5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvNzE4NDkgaHR0cC90
ZXN0cy9zZWN1cml0eS93ZWJnbC1yZW1vdGUtcmVhZC1yZW1vdGUtaW1hZ2UtYmxvY2tlZC1uby1j
cm9zc29yaWdpbi5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvNzE4NDkgd2Via2l0Lm9yZy9i
LzEyNDQ4NiBodHRwL3Rlc3RzL3dlYmdsIFsgU2tpcCBdCi13ZWJraXQub3JnL2IvNzE4NDkgd2Vi
a2l0Lm9yZy9iLzExMTQ3NyBpbnNwZWN0b3ItcHJvdG9jb2wvbGF5ZXJzIFsgU2tpcCBdCit3ZWJr
aXQub3JnL2IvNzE4NDkgd2Via2l0Lm9yZy9iLzExMTQ3NyBpbnNwZWN0b3IvbGF5ZXJzIFsgU2tp
cCBdCiB3ZWJraXQub3JnL2IvNzE4NDkgd2ViZ2wgWyBTa2lwIF0KIAogIyBUaGVzZSB0ZXN0cyBy
ZWZlcmVuY2Ugc3BlY2lmaWMgZm9udHMgb24gTWFjIHBvcnQuCkBAIC05OTQsNyArOTk0LDYgQEAg
d2Via2l0Lm9yZy9iLzEzMjI1NyBmYXN0L2hpc3RvcnkvZm9ybS1zdWJtaXQtaW4tZnJhbWUtdmlh
LW9uY2xpY2suaHRtbCBbIFRpbWVvdXQKIHdlYmtpdC5vcmcvYi8xMzIyNjAgZmFzdC93b3JrZXJz
L3dvcmtlci1jbG9zZS5odG1sIFsgVGltZW91dCBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xMzIyNjEg
aHRtbDVsaWIvZ2VuZXJhdGVkL3J1bi10ZXN0czE2LWRhdGEuaHRtbCBbIFRpbWVvdXQgUGFzcyBd
CiB3ZWJraXQub3JnL2IvMTMyMjYyIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcmVkaXJlY3QuaHRt
bCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTMyMjY0IGluc3BlY3Rvci1wcm90b2Nv
bC9wYWdlL2RlbnktWC1GcmFtZU9wdGlvbi5odG1sIFsgRmFpbHVyZSBUaW1lb3V0IFBhc3MgXQog
d2Via2l0Lm9yZy9iLzEzMjI2NyBtYXRobWwvd2JyLWluLW1yb290LWNyYXNoLmh0bWwgWyBUaW1l
b3V0IFBhc3MgXQogd2Via2l0Lm9yZy9iLzEzMjI3MiBmYXN0L2RvbS9nYy0xMC5odG1sIFsgRmFp
bHVyZSBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xMzIyNzkgcGVyZi9tb3VzZS1ldmVudC5odG1sIFsg
RmFpbHVyZSBQYXNzIF0KQEAgLTExMTQsNyArMTExMyw3IEBAIHdlYmtpdC5vcmcvYi8xMzY1ODAg
bWVkaWEvY29udGV4dC1tZW51LWFjdGlvbnMuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCiAKIHdlYmtp
dC5vcmcvYi8xMzY1ODEgZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctZHJvcC1kZWFkLWZyYW1lLmh0
bWwgWyBGYWlsdXJlIFRpbWVvdXQgUGFzcyBdCiAKLXdlYmtpdC5vcmcvYi8xMzkzNTkgaW5zcGVj
dG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZGZnLWNhbGxlZS1hbmQtZXhhbWlu
ZS1kZmctbG9jYWwuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCit3ZWJraXQub3JnL2IvMTM5MzU5IGlu
c3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWRmZy1jYWxsZWUtYW5kLWV4YW1pbmUtZGZn
LWxvY2FsLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCiB3ZWJraXQub3JnL2IvMTM5NDg5IGh0dHAv
dGVzdHMvY3NzL2xpbmstY3NzLWRpc2FibGVkLXZhbHVlLXdpdGgtc2xvdy1sb2FkaW5nLXNoZWV0
Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogCkBAIC0xMTI3LDcgKzExMjYsNyBAQCB3ZWJraXQub3Jn
L2IvMTMxNTQ1IG1lZGlhL21lZGlhLWV2ZW50LWxpc3RlbmVycy5odG1sIFsgRmFpbHVyZSBQYXNz
IF0KIHdlYmtpdC5vcmcvYi8xNDM3MDIgbWVkaWEvcHJvZ3Jlc3MtZXZlbnRzLWdlbmVyYXRlZC1j
b3JyZWN0bHkuaHRtbCBbIFRpbWVvdXQgQ3Jhc2ggXQogd2Via2l0Lm9yZy9iLzE0MzcwNCBtZWRp
YS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLWFwcGVuZC1tZWRpYS1zZWdtZW50LXdpdGhvdXQt
aW5pdC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIAotd2Via2l0Lm9yZy9iLzEzOTM2NCBpbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1kZmcuaHRtbCBbIEZhaWx1cmUgUGFz
cyBdCit3ZWJraXQub3JnL2IvMTM5MzY0IGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50
LWRmZy5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xNDM4NzYgY3NzMy92aWV3
cG9ydC1wZXJjZW50YWdlLWxlbmd0aHMvdmgtcmVzaXplLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IFBhc3MgXQogCiB3ZWJraXQub3JnL2IvMTQzOTgzIGZhc3QvaGlkcGkvaW1hZ2Utc3Jjc2V0LXN2
Zy1jYW52YXMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgUGFzcyBdCkBAIC0xMjYwLDMyICsxMjU5
LDMyIEBAIHdlYmtpdC5vcmcvYi8xMTY5NTcgbWVkaWEvdHJhY2svdHJhY2stYXV0b21hdGljLXN1
YnRpdGxlcy5odG1sIFsgVGltZW91dCBdCiB3ZWJraXQub3JnL2IvMTE2OTU4IGh0dHAvdGVzdHMv
bmF2aWdhdGlvbi9zY3JvbGxzdGF0ZS1hZnRlci1odHRwLWVxdWl2LXJlZnJlc2guaHRtbCBbIFRp
bWVvdXQgXQogd2Via2l0Lm9yZy9iLzExNjk1OCBodHRwL3Rlc3RzL25hdmlnYXRpb24vc2Nyb2xs
c3RhdGUtYWZ0ZXItbG9jYXRpb24tcmVsb2FkLmh0bWwgWyBUaW1lb3V0IF0KIAotd2Via2l0Lm9y
Zy9iLzEyMDY4MiBpbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9hcmNoaXZlLmh0bWwgWyBUaW1lb3V0
IF0KK3dlYmtpdC5vcmcvYi8xMjA2ODIgaW5zcGVjdG9yL3BhZ2UvYXJjaGl2ZS5odG1sIFsgVGlt
ZW91dCBdCiAKIHdlYmtpdC5vcmcvYi8xMjI1NzEgaHR0cC90ZXN0cy9pbnNwZWN0b3IvY29uc29s
ZS9hY2Nlc3MtaW5zcGVjdGVkLW9iamVjdC5odG1sIFsgVGltZW91dCBQYXNzIF0KLXdlYmtpdC5v
cmcvYi8xMjI1NzEgaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQuaHRt
bCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci1wcm90b2Nv
bC9kZWJ1Z2dlci9jYWxsLWZyYW1lLWZ1bmN0aW9uLW5hbWUuaHRtbCBbIFRpbWVvdXQgUGFzcyBd
Ci13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRCcmVh
a3BvaW50LW9wdGlvbnMtZXhjZXB0aW9uLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9y
Zy9iLzEyMjU3MSBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlv
bnMtYWxsLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0
b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtbm9uZS5odG1sIFsgVGlt
ZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0Lmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9y
Zy9iLzEyMjU3MSBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1hdXRv
Q29udGludWUuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTIyNTcxIGluc3Bl
Y3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy11bmNhdWdodC5odG1s
IFsgVGltZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yLXByb3RvY29s
L2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtYWN0aW9ucy5odG1sIFsgRmFpbHVyZSBUaW1lb3V0IFBh
c3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvY2Fs
bC1mcmFtZS10aGlzLW5vbnN0cmljdC5odG1sIFsgVGltZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcv
Yi8xMjI1NzEgaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29sdW1u
Lmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3ItcHJv
dG9jb2wvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRpb24uaHRtbCBbIFRpbWVvdXQgUGFz
cyBdCi13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9yZW1v
dmVCcmVha3BvaW50Lmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBp
bnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvc2V0VmFyaWFibGVWYWx1ZS5odG1sIFsgVGltZW91
dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L2NhbGwtZnJhbWUtdGhpcy1zdHJpY3QuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3Jn
L2IvMTIyNTcxIGluc3BlY3Rvci1wcm90b2NvbC9kb20vcmVxdWVzdC1jaGlsZC1ub2Rlcy1kZXB0
aC5odG1sIFsgVGltZW91dCBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yLXBy
b3RvY29sL2RvbS9mb2N1cy5odG1sIFsgRmFpbHVyZSBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9y
Zy9iLzEyMjU3MSBpbnNwZWN0b3ItcHJvdG9jb2wvcnVudGltZS9nZXRQcm9wZXJ0aWVzLmh0bWwg
WyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3ItcHJvdG9jb2wv
cGFnZS9qYXZhc2NyaXB0RGlhbG9nRXZlbnRzLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Via2l0
Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3ItcHJvdG9jb2wvcGFnZS9mcmFtZVN0YXJ0ZWRMb2FkaW5n
Lmh0bWwgWyBUaW1lb3V0IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3ItcHJv
dG9jb2wvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24uaHRtbCBbIFRpbWVvdXQgUGFzcyBd
Ci13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci1wcm90b2NvbC9wYWdlL3NldEVtdWxhdGVk
TWVkaWEuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCi13ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rv
ci1wcm90b2NvbC9jc3MvZ2V0U3VwcG9ydGVkQ1NTUHJvcGVydGllcy5odG1sIFsgVGltZW91dCBQ
YXNzIF0KK3dlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL3NldEJyZWFrcG9p
bnQuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCit3ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9k
ZWJ1Z2dlci9jYWxsLWZyYW1lLWZ1bmN0aW9uLW5hbWUuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCit3
ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LW9wdGlv
bnMtZXhjZXB0aW9uLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQord2Via2l0Lm9yZy9iLzEyMjU3MSBp
bnNwZWN0b3IvZGVidWdnZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtYWxsLmh0bWwgWyBUaW1lb3V0
IFBhc3MgXQord2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIvc2V0UGF1c2VP
bkV4Y2VwdGlvbnMtbm9uZS5odG1sIFsgVGltZW91dCBQYXNzIF0KK3dlYmtpdC5vcmcvYi8xMjI1
NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwtZnJhbWUtdGhpcy1ob3N0Lmh0bWwgWyBUaW1lb3V0
IFBhc3MgXQord2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtw
b2ludC1hdXRvQ29udGludWUuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCit3ZWJraXQub3JnL2IvMTIy
NTcxIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRQYXVzZU9uRXhjZXB0aW9ucy11bmNhdWdodC5odG1s
IFsgVGltZW91dCBQYXNzIF0KK3dlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnQtYWN0aW9ucy5odG1sIFsgRmFpbHVyZSBUaW1lb3V0IFBhc3MgXQord2Vi
a2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIvY2FsbC1mcmFtZS10aGlzLW5vbnN0
cmljdC5odG1sIFsgVGltZW91dCBQYXNzIF0KK3dlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9y
L2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtY29sdW1uLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQord2Vi
a2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1jb25kaXRp
b24uaHRtbCBbIFRpbWVvdXQgUGFzcyBdCit3ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9k
ZWJ1Z2dlci9yZW1vdmVCcmVha3BvaW50Lmh0bWwgWyBUaW1lb3V0IFBhc3MgXQord2Via2l0Lm9y
Zy9iLzEyMjU3MSBpbnNwZWN0b3IvZGVidWdnZXIvc2V0VmFyaWFibGVWYWx1ZS5odG1sIFsgVGlt
ZW91dCBQYXNzIF0KK3dlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGwt
ZnJhbWUtdGhpcy1zdHJpY3QuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCit3ZWJraXQub3JnL2IvMTIy
NTcxIGluc3BlY3Rvci9kb20vcmVxdWVzdC1jaGlsZC1ub2Rlcy1kZXB0aC5odG1sIFsgVGltZW91
dCBQYXNzIF0KK3dlYmtpdC5vcmcvYi8xMjI1NzEgaW5zcGVjdG9yL2RvbS9mb2N1cy5odG1sIFsg
RmFpbHVyZSBUaW1lb3V0IFBhc3MgXQord2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvcnVu
dGltZS9nZXRQcm9wZXJ0aWVzLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQord2Via2l0Lm9yZy9iLzEy
MjU3MSBpbnNwZWN0b3IvcGFnZS9qYXZhc2NyaXB0RGlhbG9nRXZlbnRzLmh0bWwgWyBUaW1lb3V0
IFBhc3MgXQord2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0b3IvcGFnZS9mcmFtZVN0YXJ0ZWRM
b2FkaW5nLmh0bWwgWyBUaW1lb3V0IFBhc3MgXQord2Via2l0Lm9yZy9iLzEyMjU3MSBpbnNwZWN0
b3IvcGFnZS9mcmFtZVNjaGVkdWxlZE5hdmlnYXRpb24uaHRtbCBbIFRpbWVvdXQgUGFzcyBdCit3
ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9wYWdlL3NldEVtdWxhdGVkTWVkaWEuaHRtbCBb
IFRpbWVvdXQgUGFzcyBdCit3ZWJraXQub3JnL2IvMTIyNTcxIGluc3BlY3Rvci9jc3MvZ2V0U3Vw
cG9ydGVkQ1NTUHJvcGVydGllcy5odG1sIFsgVGltZW91dCBQYXNzIF0KIAogQnVnKEdUSykgcGx1
Z2lucy9yZWxvYWRwbHVnaW5zLWFuZC1wYWdlcy5odG1sIFsgVGltZW91dCBdCiAKQEAgLTE4MzAs
OCArMTgyOSw4IEBAIHdlYmtpdC5vcmcvYi85ODYxMyBjc3MzL21hc2tpbmcvY2xpcC1wYXRoLXJl
ZmVyZW5jZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi85ODk1MCB0
cmFuc2l0aW9ucy9ibGVuZG1vZGUtdHJhbnNpdGlvbnMuaHRtbCBbIEZhaWx1cmUgXQogCi13ZWJr
aXQub3JnL2IvMTAwODQ2IGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9wYXVzZS1kZWRpY2F0
ZWQtd29ya2VyLmh0bWwgWyBTa2lwIF0KLXdlYmtpdC5vcmcvYi8xMDA4NDYgaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL3Rlcm1pbmF0ZS1kZWRpY2F0ZWQtd29ya2VyLXdoaWxlLXBhdXNlZC5o
dG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTAwODQ2IGluc3BlY3Rvci9kZWJ1Z2dlci9wYXVz
ZS1kZWRpY2F0ZWQtd29ya2VyLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xMDA4NDYgaW5z
cGVjdG9yL2RlYnVnZ2VyL3Rlcm1pbmF0ZS1kZWRpY2F0ZWQtd29ya2VyLXdoaWxlLXBhdXNlZC5o
dG1sIFsgU2tpcCBdCiAKIHdlYmtpdC5vcmcvYi8xMDE1MzkgZWRpdGluZy9leGVjQ29tbWFuZC9z
d2l0Y2gtbGlzdC10eXBlLXdpdGgtb3JwaGFuZWQtbGkuaHRtbCBbIEZhaWx1cmUgXQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMS9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci13azEvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCAxNDZiYjNlMWY3MGE0MTE3NDE1ZTBhZmJkYjM5ZDY5NDQ0Zjc2OTVmLi40
MWE1YjhmMGNiNGVlMTdjYWFmZWM5NmZiYWUwOWEwMjcyOWUwZGQxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Itd2sxL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTEyOTcsOSArMTI5Nyw5IEBAIGZhc3QvdHJhbnNmb3Jtcy90cmFuc2Zvcm1lZC1mb2N1c2Vk
LXRleHQtaW5wdXQuaHRtbCBbIEZhaWx1cmUgXQogZmFzdC93cml0aW5nLW1vZGUvS3VzYS1NYWt1
cmEtYmFja2dyb3VuZC1jYW52YXMuaHRtbCBbIEZhaWx1cmUgXQogCiAjIEluc3BlY3RvciBwcm90
b2NvbCB0ZXN0cyB0aGF0IGZhaWw6Ci1pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvYnJlYWtw
b2ludC1ldmFsLXdpdGgtZXhjZXB0aW9uLmh0bWwgWyBGYWlsdXJlIF0KLWluc3BlY3Rvci1wcm90
b2NvbC9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWFjdGlvbnMuaHRtbCBbIEZhaWx1cmUgXQotaW5z
cGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZGZnLWNhbGxlZS1hbmQtZXhh
bWluZS1kZmctbG9jYWwuaHRtbCBbIEZhaWx1cmUgXQoraW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFr
cG9pbnQtZXZhbC13aXRoLWV4Y2VwdGlvbi5odG1sIFsgRmFpbHVyZSBdCitpbnNwZWN0b3IvZGVi
dWdnZXIvc2V0QnJlYWtwb2ludC1hY3Rpb25zLmh0bWwgWyBGYWlsdXJlIF0KK2luc3BlY3Rvci9k
ZWJ1Z2dlci9zZXRCcmVha3BvaW50LWRmZy1jYWxsZWUtYW5kLWV4YW1pbmUtZGZnLWxvY2FsLmh0
bWwgWyBGYWlsdXJlIF0KIAogIyBKYXZhU2NyaXB0cyB0ZXN0cyB0aGF0IGZhaWw6CiBqcy9kb20v
ZGVlcC1yZWN1cnNpb24tdGVzdC5odG1sIFsgRmFpbHVyZSBdCkBAIC0xNDEyLDggKzE0MTIsOCBA
QCBmYXN0L3J1YnkvdGV4dC1lbXBoYXNpcy5odG1sCiBmYXN0L3RleHQvZW1waGFzaXMtaGVpZ2h0
LWNyYXNoLmh0bWwKIGZhc3QvdGV4dC9lbXBoYXNpcy12ZXJ0aWNhbC5odG1sCiBmYXN0L3RleHQv
ZW1waGFzaXMuaHRtbAotaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3BhdXNlLWRlZGljYXRl
ZC13b3JrZXIuaHRtbAotaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3Rlcm1pbmF0ZS1kZWRp
Y2F0ZWQtd29ya2VyLXdoaWxlLXBhdXNlZC5odG1sCitpbnNwZWN0b3IvZGVidWdnZXIvcGF1c2Ut
ZGVkaWNhdGVkLXdvcmtlci5odG1sCitpbnNwZWN0b3IvZGVidWdnZXIvdGVybWluYXRlLWRlZGlj
YXRlZC13b3JrZXItd2hpbGUtcGF1c2VkLmh0bWwKIGluc3BlY3Rvci9jc3Mvc2VsZWN0b3ItZHlu
YW1pYy1zcGVjaWZpY2l0eS5odG1sCiBpbnNwZWN0b3IvbW9kZWwvcmVtb3RlLW9iamVjdC1nZXQt
cHJvcGVydGllcy5odG1sCiB0cmFuc2l0aW9ucy9jdWJpYy1iZXppZXItb3ZlcmZsb3ctdHJhbnNm
b3JtLmh0bWwKQEAgLTE2NzQsMTAgKzE2NzQsMTAgQEAgZmFzdC93cml0aW5nLW1vZGUvYnJva2Vu
LWlkZW9ncmFwaC1zbWFsbC1jYXBzLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3Qvd3JpdGluZy1tb2Rl
L2Jyb2tlbi1pZGVvZ3JhcGhpYy1mb250Lmh0bWwgWyBGYWlsdXJlIF0KIGZhc3Qvd3JpdGluZy1t
b2RlL2phcGFuZXNlLXJsLXRleHQtd2l0aC1icm9rZW4tZm9udC5odG1sIFsgRmFpbHVyZSBdCiBo
dHRwL3Rlc3RzL2xvYWRpbmcvc2l6ZXMvcHJlbG9hZC1pbWFnZS1zaXplcy5odG1sIFsgRmFpbHVy
ZSBdCi1pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvbmVzdGVkLWluc3BlY3RvcnMuaHRtbCBb
IEZhaWx1cmUgXQotaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3JlZ3Jlc3MtMTMzMTgyLmh0
bWwgWyBGYWlsdXJlIF0KLWluc3BlY3Rvci1wcm90b2NvbC9kb20vZ2V0QWNjZXNzaWJpbGl0eVBy
b3BlcnRpZXNGb3JOb2RlLmh0bWwgWyBGYWlsdXJlIF0KLWluc3BlY3Rvci1wcm90b2NvbC9wYWdl
L2phdmFzY3JpcHREaWFsb2dFdmVudHMuaHRtbCBbIEZhaWx1cmUgXQoraW5zcGVjdG9yL2RlYnVn
Z2VyL25lc3RlZC1pbnNwZWN0b3JzLmh0bWwgWyBGYWlsdXJlIF0KK2luc3BlY3Rvci9kZWJ1Z2dl
ci9yZWdyZXNzLTEzMzE4Mi5odG1sIFsgRmFpbHVyZSBdCitpbnNwZWN0b3IvZG9tL2dldEFjY2Vz
c2liaWxpdHlQcm9wZXJ0aWVzRm9yTm9kZS5odG1sIFsgRmFpbHVyZSBdCitpbnNwZWN0b3IvcGFn
ZS9qYXZhc2NyaXB0RGlhbG9nRXZlbnRzLmh0bWwgWyBGYWlsdXJlIF0KIHBsYXRmb3JtL2lvcy1z
aW11bGF0b3IvaW9zL2Zhc3QvdGV4dC91bmRlcmxpbmUtc2NhbGluZy5odG1sIFsgRmFpbHVyZSBd
CiBzdmcvY3VzdG9tL2xpbmtpbmctdXJpLTAxLWIuc3ZnIFsgRmFpbHVyZSBdCiBjb21wb3NpdGlu
Zy9iYWNrZ3JvdW5kcy9iYWNrZ3JvdW5kLWltYWdlLXdpdGgtbmVnYXRpdmUtemluZGV4Lmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy1zaW11bGF0b3Itd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3Mtc2ltdWxhdG9yLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGMyNWY3OWJjYjc2ODY0NmNh
ZGU5MGUzM2E3MGZkZjhmZjYxODgyMDYuLmYyZTQyOWVjMWZjNjE0MDdhMTE1YmQxYTVmMDZjODBm
MzliN2ZiZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3It
d2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVs
YXRvci13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjAxLDcgKzIwMSw3IEBAIHN0b3JhZ2UvZG9t
c3RvcmFnZS9sb2NhbHN0b3JhZ2UvYWNjZXNzLXN0b3JhZ2UtYWZ0ZXItd2luZG93LWNsb3NlLmh0
bWwKIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc2V0LXZhbHVlLWluLXN0b3JhZ2Ut
YWZ0ZXItd2luZG93LWNsb3NlLmh0bWwKIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uv
d2luZG93LW9wZW4uaHRtbAogc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9hY2Nlc3Mt
c3RvcmFnZS10aGVuLXNldC12YWx1ZS1pbi1zdG9yYWdlLWFmdGVyLXdpbmRvdy1jbG9zZS5odG1s
Ci1pbnNwZWN0b3ItcHJvdG9jb2wKK2luc3BlY3RvcgogZmFzdC9sb2FkZXIvcGluZy1lcnJvci5o
dG1sCiBmYXN0L2xvYWRlci9zdGF0ZW9iamVjdHMvcG9wc3RhdGUtZmlyZXMtd2l0aC1wYWdlLWNh
Y2hlLmh0bWwKIGZhc3QvbG9hZGVyL3N0YXRlb2JqZWN0cy9yZXBsYWNlc3RhdGUtaW4taWZyYW1l
Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCBkYTU3YzBlODVjMTNhZTgxZjcxYTY3MzA3YjdkMzhkM2EwNzc0ODU5Li5jNTU1OTdhOTc0
NDBlZWNiNTAzN2E0NThkYTkxMWFlMmI1OWZmODk5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC01MDcsNyArNTA3LDcgQEAgd2Via2l0Lm9y
Zy9iLzEzODczNiBodHRwL3Rlc3RzL2FwcGNhY2hlL2F1dGguaHRtbCBbIFNraXAgXQogCiBtZWRp
YS92aWRlby1iYWNrZ3JvdW5kLXRhYi1wbGF5YmFjay5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAot
d2Via2l0Lm9yZy9iLzEzODA5NyBbIFlvc2VtaXRlIF0gaW5zcGVjdG9yLXByb3RvY29sL2RlYnVn
Z2VyL3NldFBhdXNlT25FeGNlcHRpb25zLXVuY2F1Z2h0Lmh0bWwgWyBQYXNzIEZhaWx1cmUgVGlt
ZW91dCBdCit3ZWJraXQub3JnL2IvMTM4MDk3IFsgWW9zZW1pdGUgXSBpbnNwZWN0b3IvZGVidWdn
ZXIvc2V0UGF1c2VPbkV4Y2VwdGlvbnMtdW5jYXVnaHQuaHRtbCBbIFBhc3MgRmFpbHVyZSBUaW1l
b3V0IF0KIAogd2Via2l0Lm9yZy9iLzEzOTk3OSBbIFlvc2VtaXRlKyBdIGZhc3QvcmVnaW9ucy9s
YXllcnMvcmVnaW9uLXJlbW92ZWQtZHVyaW5nLWFuaW1hdGlvbi5odG1sIFsgUGFzcyBJbWFnZU9u
bHlGYWlsdXJlIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCAzN2FlOGFiYmNlYjg4ZjkzNjk0MzRmZTQ5M2E5N2VmZTQzNjhhYjMxLi5mMTlmZTg5MTQ5
ZDdlOThiMTlkYTIwZGU5NGNiNTY3ODIyMDQ2MDc4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNjc4LDcgKzY3OCw3IEBAIHdlYmtpdC5vcmcvYi8xMDY0
MTUgZmFzdC93b3JrZXJzL3dvcmtlci1saWZlY3ljbGUuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAK
IHdlYmtpdC5vcmcvYi8xMTkzNzQgZmFzdC93b3JrZXJzL3Rlcm1pbmF0aW9uLWVhcmx5Lmh0bWwg
WyBQYXNzIENyYXNoIF0KIAotd2Via2l0Lm9yZy9iLzExMDE4NiBpbnNwZWN0b3ItcHJvdG9jb2wv
cGFnZS9qYXZhc2NyaXB0RGlhbG9nRXZlbnRzLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8x
MTAxODYgaW5zcGVjdG9yL3BhZ2UvamF2YXNjcmlwdERpYWxvZ0V2ZW50cy5odG1sIFsgU2tpcCBd
CiAKICMgTmVlZCBzdXBwb3J0IGZvciBSZXNvdXJjZUhhbmRsZTo6ZGlkQ2hhbmdlUHJpb3JpdHkg
YW5kIERSVCBzdXBwb3J0CiB3ZWJraXQub3JnL2IvMTExMDE2IGh0dHAvdGVzdHMvbG9hZGluZy9w
cm9tb3RlLWltZy1wcmVsb2FkLXByaW9yaXR5Lmh0bWwgWyBGYWlsdXJlIF0KQEAgLTc1NSw3ICs3
NTUsNyBAQCB3ZWJraXQub3JnL2IvMTIzMzY5IHN2Zy9jc3MvcGFyZW50LXNoYWRvdy1vZmZzY3Jl
ZW4uc3ZnIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlCiB3ZWJraXQub3JnL2IvMTIzMzY5IHN2Zy9j
c3Mvcm9vdC1zaGFkb3ctb2Zmc2NyZWVuLnN2ZyBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCiAK
ICMgd2Via2l0Lm9yZy9iLzEwMDg0Niwgd2Via2l0Lm9yZy9iLzEzNjcxNQotaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyCitpbnNwZWN0b3IvZGVidWdnZXIKIAogd2Via2l0Lm9yZy9iLzEyNDMx
MSBjb21wb3NpdGluZy9yZWdpb25zL3RyYW5zZm9ybS10cmFuc3BhcmVudC1wb3NpdGlvbmVkLXZp
ZGVvLWluc2lkZS1yZWdpb24uaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDZmNjc0Njc0NjQ5ZjI2MDZlMDkz
ODJiYmZkNTczZTI3OTYwMjFkYjQuLmJhODcwYzkzOTljNjJkOTFkMmJkYWQxMzRlYjMzMTQyOTIx
OGI3ODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0y
Mzc1LDIxICsyMzc1LDIxIEBAIGluc3BlY3Rvci90ZXN0LWhhcm5lc3MtdHJpdmlhbGx5LXdvcmtz
Lmh0bWwgWyBTa2lwIF0KIGluc3BlY3Rvci9kb20vY29udGVudC1ub2RlLXJlZ2lvbi1pbmZvLmh0
bWwgWyBDcmFzaCBQYXNzIEZhaWx1cmUgVGltZW91dCBdCiAKICMgSW5zcGVjdG9yIFByb3RvY29s
Ci13ZWJraXQub3JnL2IvMTQwNTEwIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci90ZXJtaW5h
dGUtZGVkaWNhdGVkLXdvcmtlci13aGlsZS1wYXVzZWQuaHRtbCBbIFNraXAgXSAgIyBDcmFzaGlu
ZwotaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3BhdXNlLW9uLWFzc2VydC5odG1sIFsgU2tp
cCBdCi1pbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXIvcmVncmVzcy0xMzMxODIuaHRtbAlbIFNr
aXAgXSAgIyBDcmFzaGluZwotWyBSZWxlYXNlIF0gaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2Vy
L3NldEJyZWFrcG9pbnQtYWN0aW9ucy5odG1sIFsgUGFzcyBUaW1lb3V0IF0KLXdlYmtpdC5vcmcv
Yi8xNDA1MjAgaW5zcGVjdG9yLXByb3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZGZnLmh0
bWwgWyBTa2lwIF0gICMgQ3Jhc2hpbmcKLVsgUmVsZWFzZSBdIGluc3BlY3Rvci1wcm90b2NvbC9k
b20vZm9jdXMuaHRtbCBbIFBhc3MgVGltZW91dCBdCi13ZWJraXQub3JnL2IvMTI4OTc5IFsgUmVs
ZWFzZSBdIGluc3BlY3Rvci1wcm90b2NvbC9kb20vZ2V0QWNjZXNzaWJpbGl0eVByb3BlcnRpZXNG
b3JOb2RlLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotWyBSZWxlYXNlIF0gaW5zcGVjdG9yLXByb3Rv
Y29sL2RvbS9yZW1vdmUtbXVsdGlwbGUtbm9kZXMuaHRtbCBbIFBhc3MgVGltZW91dCBdCi1bIFJl
bGVhc2UgXSBpbnNwZWN0b3ItcHJvdG9jb2wvbGF5ZXJzL2xheWVycy1ibGVuZGluZy1jb21wb3Np
dGluZy1yZWFzb25zLmh0bWwgWyBGYWlsdXJlIF0KLVsgRGVidWcgXSBpbnNwZWN0b3ItcHJvdG9j
b2wvbGF5ZXJzL2xheWVycy1ibGVuZGluZy1jb21wb3NpdGluZy1yZWFzb25zLmh0bWwgWyBTa2lw
IF0KLVsgUmVsZWFzZSBdIGluc3BlY3Rvci1wcm90b2NvbC9sYXllcnMvbGF5ZXJzLXJlZmxlY3Rl
ZC1jb250ZW50Lmh0bWwgWyBQYXNzIFRpbWVvdXQgXQotWyBSZWxlYXNlIF0gaW5zcGVjdG9yLXBy
b3RvY29sL2RlYnVnZ2VyL3NldEJyZWFrcG9pbnQtZGZnLWNhbGxlZS1hbmQtZXhhbWluZS1kZmct
bG9jYWwuaHRtbCBbIEZhaWx1cmUgXQotWyBEZWJ1ZyBdIGluc3BlY3Rvci1wcm90b2NvbC9kZWJ1
Z2dlci9zZXRCcmVha3BvaW50LWRmZy1jYWxsZWUtYW5kLWV4YW1pbmUtZGZnLWxvY2FsLmh0bWwg
WyBTa2lwIF0gIyBEZWJ1ZyBBc3NlcnRpb24KLWluc3BlY3Rvci1wcm90b2NvbC9kZWJ1Z2dlci9y
ZW1vdmVCcmVha3BvaW50Lmh0bWwgWyBTa2lwIF0gIyBDcmFzaGluZwotaW5zcGVjdG9yLXByb3Rv
Y29sL2RlYnVnZ2VyL3NlYXJjaEluQ29udGVudC1saW5lYnJlYWtzLmh0bWwgWyBQYXNzIENyYXNo
IF0gIyBGbGFreQord2Via2l0Lm9yZy9iLzE0MDUxMCBpbnNwZWN0b3IvZGVidWdnZXIvdGVybWlu
YXRlLWRlZGljYXRlZC13b3JrZXItd2hpbGUtcGF1c2VkLmh0bWwgWyBTa2lwIF0gICMgQ3Jhc2hp
bmcKK2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZS1vbi1hc3NlcnQuaHRtbCBbIFNraXAgXQoraW5z
cGVjdG9yL2RlYnVnZ2VyL3JlZ3Jlc3MtMTMzMTgyLmh0bWwJWyBTa2lwIF0gICMgQ3Jhc2hpbmcK
K1sgUmVsZWFzZSBdIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWFjdGlvbnMuaHRt
bCBbIFBhc3MgVGltZW91dCBdCit3ZWJraXQub3JnL2IvMTQwNTIwIGluc3BlY3Rvci9kZWJ1Z2dl
ci9zZXRCcmVha3BvaW50LWRmZy5odG1sIFsgU2tpcCBdICAjIENyYXNoaW5nCitbIFJlbGVhc2Ug
XSBpbnNwZWN0b3IvZG9tL2ZvY3VzLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQord2Via2l0Lm9yZy9i
LzEyODk3OSBbIFJlbGVhc2UgXSBpbnNwZWN0b3IvZG9tL2dldEFjY2Vzc2liaWxpdHlQcm9wZXJ0
aWVzRm9yTm9kZS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KK1sgUmVsZWFzZSBdIGluc3BlY3Rvci9k
b20vcmVtb3ZlLW11bHRpcGxlLW5vZGVzLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQorWyBSZWxlYXNl
IF0gaW5zcGVjdG9yL2xheWVycy9sYXllcnMtYmxlbmRpbmctY29tcG9zaXRpbmctcmVhc29ucy5o
dG1sIFsgRmFpbHVyZSBdCitbIERlYnVnIF0gaW5zcGVjdG9yL2xheWVycy9sYXllcnMtYmxlbmRp
bmctY29tcG9zaXRpbmctcmVhc29ucy5odG1sIFsgU2tpcCBdCitbIFJlbGVhc2UgXSBpbnNwZWN0
b3IvbGF5ZXJzL2xheWVycy1yZWZsZWN0ZWQtY29udGVudC5odG1sIFsgUGFzcyBUaW1lb3V0IF0K
K1sgUmVsZWFzZSBdIGluc3BlY3Rvci9kZWJ1Z2dlci9zZXRCcmVha3BvaW50LWRmZy1jYWxsZWUt
YW5kLWV4YW1pbmUtZGZnLWxvY2FsLmh0bWwgWyBGYWlsdXJlIF0KK1sgRGVidWcgXSBpbnNwZWN0
b3IvZGVidWdnZXIvc2V0QnJlYWtwb2ludC1kZmctY2FsbGVlLWFuZC1leGFtaW5lLWRmZy1sb2Nh
bC5odG1sIFsgU2tpcCBdICMgRGVidWcgQXNzZXJ0aW9uCitpbnNwZWN0b3IvZGVidWdnZXIvcmVt
b3ZlQnJlYWtwb2ludC5odG1sIFsgU2tpcCBdICMgQ3Jhc2hpbmcKK2luc3BlY3Rvci9kZWJ1Z2dl
ci9zZWFyY2hJbkNvbnRlbnQtbGluZWJyZWFrcy5odG1sIFsgUGFzcyBDcmFzaCBdICMgRmxha3kK
IAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMjIyMjIyMjIyMjIyMjIyMjICAgICAgICBFbmQg
SW5zcGVjdG9yIElzc3VlcyAgICAgICAgICAgICAgICMjIyMjIyMjIyMjIyMjIyMjIyMjCkBAIC0y
NTM1LDcgKzI1MzUsNyBAQCB3ZWJraXQub3JnL2IvMTQ0NzE4IGZhc3QvYW5pbWF0aW9uL3JlcXVl
c3QtYW5pbWF0aW9uLWZyYW1lLXRocm90dGxlLXN1YmZyYW1lLmh0bQogCiAjIFNraXAgdGVzdHMg
dGhhdCBmYWlsIG9ubHkgaW4gRGVidWcgbW9kZSAKIFsgRGVidWcgXSBjb21wb3NpdGluZyBbIFNr
aXAgXQotWyBEZWJ1ZyBdIGluc3BlY3Rvci1wcm90b2NvbCBbIFNraXAgXQorWyBEZWJ1ZyBdIGlu
c3BlY3RvciBbIFNraXAgXQogWyBEZWJ1ZyBdIHRyYW5zZm9ybXMvM2QvaGl0LXRlc3RpbmcgWyBT
a2lwIF0KIFsgRGVidWcgXSB0cmFuc2Zvcm1zLzNkL3BvaW50LW1hcHBpbmcgWyBTa2lwIF0KIApA
QCAtMzEwOCwxMSArMzEwOCwxMSBAQCBodHRwL3Rlc3RzL2NvbnRlbnRmaWx0ZXJpbmcgWyBTa2lw
IF0KIFsgUmVsZWFzZSBdIGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL2Zsb2F0LWFzLW9ubHktY2hp
bGQtb2YtaXNvbGF0ZS1jcmFzaC5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIFsgUmVsZWFzZSBdIGpz
L3Nsb3ctc3RyZXNzL2Vtc2NyaXB0ZW4tbWVtb3BzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogWyBS
ZWxlYXNlIF0ganMvc2xvdy1zdHJlc3MvZm9sZC1zdHJpY3QtZXEuaHRtbCBbIFNraXAgXSAjIENy
YXNoZXMgb24gRVdTCi1bIFJlbGVhc2UgXSBpbnNwZWN0b3ItcHJvdG9jb2wvbGF5ZXJzL2xheWVy
cy1hbm9ueW1vdXMuaHRtbCBbIFNraXAgXSAjIFRpbWVvdXRzCi1bIFJlbGVhc2UgXSBpbnNwZWN0
b3ItcHJvdG9jb2wvbGF5ZXJzL2xheWVycy1ibGVuZGluZy1jb21wb3NpdGluZy1yZWFzb25zLmh0
bWwgWyBTa2lwIF0gIyBUaW1lb3V0cwotWyBSZWxlYXNlIF0gaW5zcGVjdG9yLXByb3RvY29sL2xh
eWVycy9sYXllcnMtY29tcG9zaXRpbmctcmVhc29ucy5odG1sIFsgU2tpcCBdICMgVGltZW91dHMK
LVsgUmVsZWFzZSBdIGluc3BlY3Rvci1wcm90b2NvbC9sYXllcnMvbGF5ZXJzLWZvci1ub2RlLmh0
bWwgWyBTa2lwIF0gIyBUaW1lb3V0cwotWyBSZWxlYXNlIF0gaW5zcGVjdG9yLXByb3RvY29sL2xh
eWVycy9sYXllcnMtZ2VuZXJhdGVkLWNvbnRlbnQuaHRtbCAgWyBTa2lwIF0gIyBUaW1lb3V0cwor
WyBSZWxlYXNlIF0gaW5zcGVjdG9yL2xheWVycy9sYXllcnMtYW5vbnltb3VzLmh0bWwgWyBTa2lw
IF0gIyBUaW1lb3V0cworWyBSZWxlYXNlIF0gaW5zcGVjdG9yL2xheWVycy9sYXllcnMtYmxlbmRp
bmctY29tcG9zaXRpbmctcmVhc29ucy5odG1sIFsgU2tpcCBdICMgVGltZW91dHMKK1sgUmVsZWFz
ZSBdIGluc3BlY3Rvci9sYXllcnMvbGF5ZXJzLWNvbXBvc2l0aW5nLXJlYXNvbnMuaHRtbCBbIFNr
aXAgXSAjIFRpbWVvdXRzCitbIFJlbGVhc2UgXSBpbnNwZWN0b3IvbGF5ZXJzL2xheWVycy1mb3It
bm9kZS5odG1sIFsgU2tpcCBdICMgVGltZW91dHMKK1sgUmVsZWFzZSBdIGluc3BlY3Rvci9sYXll
cnMvbGF5ZXJzLWdlbmVyYXRlZC1jb250ZW50Lmh0bWwgIFsgU2tpcCBdICMgVGltZW91dHMKIAog
IyBXaW5kb3dzIGRvZXNuJ3QgaGF2ZSBBUEkgZm9yIGRpc2FibGluZyBtZXRhIHJlZnJlc2gKIGxv
YWRlci9tZXRhLXJlZnJlc2gtZGlzYWJsZWQuaHRtbCBbIFNraXAgXQo=
</data>
<flag name="review"
          id="283617"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>